php陣列怎麼把key(鍵)轉為值

2022-09-29 22:00:56

3種轉換方法:1、利用array_flip()交換鍵與值的位置,語法「array_flip(陣列)」;2、利用foreach語句和一個空陣列來交換鍵與值的位置,語法「foreach($arr as $k=>$v){$r[$v]=$k;}」;3、使用array_keys()獲取陣列全部的key(鍵),語法「array_keys(陣列)」,會返回一個包含所有鍵名的陣列。

php入門到就業線上直播課:進入學習
API 檔案、設計、偵錯、自動化測試一體化共同作業工具:

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

情況一:陣列把key(鍵)轉為值,可以理解為進行鍵與值的交換。

方法1:利用array_flip()函數交換陣列鍵與值

array_flip() 函數用於反轉/交換陣列中的鍵名和對應關聯的鍵值。

array_flip(array);
登入後複製
引數描述
array必需。規定需進行鍵/值對反轉的陣列。

返回值:如果反轉成功,則返回反轉後的陣列;如果反轉失敗,則返回 NULL。

注:我們必須記住,陣列的值必須是有效鍵,即它們必須是整數或字串。如果值的型別錯誤,則會丟擲警告,並且相關的鍵/值對將不包含在結果中。

範例

<?php
header('content-type:text/html;charset=utf-8'); 
$arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
var_dump($arr);
$result=array_flip($arr);
echo "交換後:";
var_dump($result);
?>
登入後複製

1.png

方法2:利用foreach語句和一個空陣列來交換陣列鍵與值

<?php
header('content-type:text/html;charset=utf-8');  
$arr = array("a"=>"a1","b"=>'b1',"c"=>"a2","d"=>"a1");
var_dump($arr);
$res=[];
foreach($arr as $k=>$v){
	$res[$v]=$k;
}

echo "交換後:";
var_dump($arr);
?>
登入後複製

2.png

情況一:陣列把key(鍵)轉為值,也可以簡單理解將key(鍵)作為元素值保留

可以理解為去除原先值不要,只留下key(鍵)作為元素值。

此時,就需要用到array_keys()函數。

array_key() 函數可以獲取陣列中的部分或所有鍵名(下標),該函數語法格式如下:

array_keys($array,$search_value,$strict)
登入後複製

引數說明如下:

  • $array:必選引數,為待操作的陣列;
  • $search_value:可選引數,如果引數為空,則函數會返回陣列中的所有鍵名,如果指定了該引數,則函數就只會返回值為 $search_value 的鍵名;
  • $strict:可選引數,判斷在搜尋的時候是否使用嚴格模式,$strict 預設為 false,也就是非嚴格模式,在搜尋時只比較型別,不比較型別,若將 $strict 設定為 true,也就是嚴格模式,在搜尋時同時比較值和型別,等價於===

array_key() 函數會以陣列形式返回得到的陣列鍵名。

範例1:全部鍵名

<?php
$arr=array("Peter"=>65,"Harry"=>80,"John"=>78,"Clark"=>90);
var_dump($arr);
var_dump(array_keys($arr));
?>
登入後複製

1.png

範例2:指定值的鍵名

<?php
$arr=array("Peter"=>65,"Harry"=>80,"John"=>78,"Clark"=>90);
var_dump($arr);
var_dump(array_keys($arr,80));
var_dump(array_keys($arr,"80"));
var_dump(array_keys($arr,"80",true));
?>
登入後複製

2.png

方法3:使用array_search() 函數查詢

array_search() 函數可以在陣列中搜尋指定鍵值,並返回對應的鍵名。

array_search(value,array,strict)
登入後複製
引數描述
value必需。規定在陣列中搜尋的鍵值。
array必需。規定被搜尋的陣列。
strict可選。如果該引數被設定為 TRUE,則函數在陣列中搜尋資料型別和值都一致的元素。可能的值:
  • true
  • false - 預設
如果設定為 true,則在陣列中檢查給定值的型別,數位 5 和字串 5 是不同的(參見範例 2)。
  • 返回值:如果在陣列中找到指定的鍵值,則返回對應的鍵名,否則返回 FALSE。如果在陣列中找到鍵值超過一次,則返回第一次找到的鍵值所匹配的鍵名。

<?php
header('content-type:text/html;charset=utf-8');   
$arr=array("id"=>1,"name"=>"李華","age"=>23);
var_dump($arr);
echo "指定值'李華'對應的鍵名為:".array_search("李華",$arr);
?>
登入後複製

1.png

推薦學習:《》

以上就是php陣列怎麼把key(鍵)轉為值的詳細內容,更多請關注TW511.COM其它相關文章!