3種轉換方法:1、利用array_flip()交換鍵與值的位置,語法「array_flip(數組)」;2、利用foreach語句和一個空數組來交換鍵與值的位置,語法“foreach($arr as $k=>$v){$r[$v]=$k;}”;3、使用array_keys()取得數組全部的key(鍵),語法“array_keys(數組)” ,會傳回一個包含所有鍵名的陣列。
本教學操作環境: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); ?>
#方法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); ?>
情況一:陣列把key(鍵)轉為值,也可以簡單理解將key(鍵)保留為元素值
可以理解為去除原先值不要,只留下key(鍵)作為元素值。
此時,就需要用到array_keys()函數。
array_key() 函數可以取得數組中的部分或所有鍵名(下標),函數語法格式如下:
array_keys($array,$search_value,$strict)
參數說明如下:
===
。 array_key() 函數會以陣列形式傳回所得的陣列鍵名。
範例1:全部鍵名
<?php $arr=array("Peter"=>65,"Harry"=>80,"John"=>78,"Clark"=>90); var_dump($arr); var_dump(array_keys($arr)); ?>
#範例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)); ?>
方法3:使用array_search() 函數查詢
array_search() 函數可以在陣列中搜尋指定鍵值,並傳回對應的鍵名。
array_search(value,array,strict)
參數 | 描述 |
---|---|
value | 必要。規定在數組中搜尋的鍵值。 |
array | 必要。規定被搜尋的陣列。 |
strict | 可選。如果該參數被設定為 TRUE,則函數在陣列中搜尋資料類型和值都一致的元素。可能的值:
|
傳回值:如果在陣列中找到指定的鍵值,則傳回對應的鍵名,否則傳回 FALSE。如果在陣列中找到鍵值超過一次,則傳回第一次找到的鍵值所符合的鍵名。
<?php header('content-type:text/html;charset=utf-8'); $arr=array("id"=>1,"name"=>"李华","age"=>23); var_dump($arr); echo "指定值'李华'对应的键名为:".array_search("李华",$arr); ?>
#推薦學習:《PHP影片教學》
以上是php數組怎麼把key(鍵)轉值的詳細內容。更多資訊請關注PHP中文網其他相關文章!