首頁 >後端開發 >PHP問題 >php數組怎麼把key(鍵)轉值

php數組怎麼把key(鍵)轉值

青灯夜游
青灯夜游原創
2022-09-29 19:33:133400瀏覽

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

php數組怎麼把key(鍵)轉值

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

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

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

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

array_flip(array);
參數 描述
#array 必要。規定需進行鍵/值對反轉的數組。

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

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

範例

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;); 
$arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
var_dump($arr);
$result=array_flip($arr);
echo "交换后:";
var_dump($result);
?>

php數組怎麼把key(鍵)轉值

#方法2:利用foreach語句和一個空數組來交換數組鍵與值

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

echo "交换后:";
var_dump($arr);
?>

php數組怎麼把key(鍵)轉值

情況一:陣列把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));
?>

php數組怎麼把key(鍵)轉值

#範例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));
?>

php數組怎麼把key(鍵)轉值

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

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

array_search(value,array,strict)
參數 描述
value 必要。規定在數組中搜尋的鍵值。
array 必要。規定被搜尋的陣列。
strict 可選。如果該參數被設定為 TRUE,則函數在陣列中搜尋資料類型和值都一致的元素。可能的值:
  • true
  • false - 預設
# 如果設定為 true,則在陣列中檢查給定值的類型,數字 5 和字串 5 是不同的(請參閱實例 2)。
  • 傳回值:如果在陣列中找到指定的鍵值,則傳回對應的鍵名,否則傳回 FALSE。如果在陣列中找到鍵值超過一次,則傳回第一次找到的鍵值所符合的鍵名。    

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$arr=array("id"=>1,"name"=>"李华","age"=>23);
var_dump($arr);
echo "指定值&#39;李华&#39;对应的键名为:".array_search("李华",$arr);
?>

php數組怎麼把key(鍵)轉值

#推薦學習:《PHP影片教學

以上是php數組怎麼把key(鍵)轉值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn