您好,登錄后才能下訂單哦!
這篇文章主要介紹“php數組如何把key轉為值”,在日常操作中,相信很多人在php數組如何把key轉為值問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php數組如何把key轉為值”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
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。
注:我們必須記住,數組的值必須是有效鍵,即它們必須是整數或字符串。如果值的類型錯誤,則會拋出警告,并且相關的鍵/值對將不包含在結果中。
示例
"red","b"=>"green","c"=>"blue","d"=>"yellow");
var_dump($arr);
$result=array_flip($arr);
echo "交換后:";
var_dump($result);
?>
方法2:利用foreach語句和一個空數組來交換數組鍵與值
"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:必選參數,為待操作的數組;
$search_value:可選參數,如果參數為空,則函數會返回數組中的所有鍵名,如果指定了該參數,則函數就只會返回值為 $search_value 的鍵名;
$strict:可選參數,判斷在搜索的時候是否使用嚴格模式,$strict 默認為 false,也就是非嚴格模式,在搜索時只比較類型,不比較類型,若將 $strict 設置為 true,也就是嚴格模式,在搜索時同時比較值和類型,等價于===
。
array_key() 函數會以數組形式返回得到的數組鍵名。
示例1:全部鍵名
65,"Harry"=>80,"John"=>78,"Clark"=>90);
var_dump($arr);
var_dump(array_keys($arr));
?>
示例2:指定值的鍵名
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。如果在數組中找到鍵值超過一次,則返回第一次找到的鍵值所匹配的鍵名。
1,"name"=>"李華","age"=>23);
var_dump($arr);
echo "指定值'李華'對應的鍵名為:".array_search("李華",$arr);
?>
到此,關于“php數組如何把key轉為值”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。