3種轉(zhuǎn)換方法:1、利用array_flip()交換鍵與值的位置,語法“array_flip(數(shù)組)”;2、利用foreach語句和一個(gè)空數(shù)組來交換鍵與值的位置,語法“foreach($arr as $k=>$v){$r[$v]=$k;}”;3、使用array_keys()獲取數(shù)組全部的key(鍵),語法“array_keys(數(shù)組)”,會(huì)返回一個(gè)包含所有鍵名的數(shù)組。
php入門到就業(yè)線上直播課:進(jìn)入學(xué)習(xí)
API 文檔、設(shè)計(jì)、調(diào)試、自動(dòng)化測試一體化協(xié)作工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
情況一:數(shù)組把key(鍵)轉(zhuǎn)為值,可以理解為進(jìn)行鍵與值的交換。
方法1:利用array_flip()函數(shù)交換數(shù)組鍵與值
array_flip() 函數(shù)用于反轉(zhuǎn)/交換數(shù)組中的鍵名和對應(yīng)關(guān)聯(lián)的鍵值。
array_flip(array);
參數(shù) | 描述 |
---|---|
array | 必需。規(guī)定需進(jìn)行鍵/值對反轉(zhuǎn)的數(shù)組。 |
返回值:如果反轉(zhuǎn)成功,則返回反轉(zhuǎn)后的數(shù)組;如果反轉(zhuǎn)失敗,則返回 NULL。
注:我們必須記住,數(shù)組的值必須是有效鍵,即它們必須是整數(shù)或字符串。如果值的類型錯(cuò)誤,則會(huì)拋出警告,并且相關(guān)的鍵/值對將不包含在結(jié)果中。
示例
"red","b"=>"green","c"=>"blue","d"=>"yellow"); var_dump($arr); $result=array_flip($arr); echo "交換后:"; var_dump($result); ?>
方法2:利用foreach語句和一個(gè)空數(shù)組來交換數(shù)組鍵與值
"a1","b"=>'b1',"c"=>"a2","d"=>"a1"); var_dump($arr); $res=[]; foreach($arr as $k=>$v){ $res[$v]=$k; } echo "交換后:"; var_dump($arr); ?>
情況一:數(shù)組把key(鍵)轉(zhuǎn)為值,也可以簡單理解將key(鍵)作為元素值保留
可以理解為去除原先值不要,只留下key(鍵)作為元素值。
此時(shí),就需要用到array_keys()函數(shù)。
array_key() 函數(shù)可以獲取數(shù)組中的部分或所有鍵名(下標(biāo)),該函數(shù)語法格式如下:
array_keys($array,$search_value,$strict)
參數(shù)說明如下:
- $array:必選參數(shù),為待操作的數(shù)組;
- $search_value:可選參數(shù),如果參數(shù)為空,則函數(shù)會(huì)返回?cái)?shù)組中的所有鍵名,如果指定了該參數(shù),則函數(shù)就只會(huì)返回值為 $search_value 的鍵名;
- $strict:可選參數(shù),判斷在搜索的時(shí)候是否使用嚴(yán)格模式,$strict 默認(rèn)為 false,也就是非嚴(yán)格模式,在搜索時(shí)只比較類型,不比較類型,若將 $strict 設(shè)置為 true,也就是嚴(yán)格模式,在搜索時(shí)同時(shí)比較值和類型,等價(jià)于
===
。
array_key() 函數(shù)會(huì)以數(shù)組形式返回得到的數(shù)組鍵名。
示例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() 函數(shù)查詢
array_search() 函數(shù)可以在數(shù)組中搜索指定鍵值,并返回對應(yīng)的鍵名。
array_search(value,array,strict)
參數(shù) | 描述 |
---|---|
value | 必需。規(guī)定在數(shù)組中搜索的鍵值。 |
array | 必需。規(guī)定被搜索的數(shù)組。 |
strict | 可選。如果該參數(shù)被設(shè)置為 TRUE,則函數(shù)在數(shù)組中搜索數(shù)據(jù)類型和值都一致的元素??赡艿闹担?/p>
如果設(shè)置為 true,則在數(shù)組中檢查給定值的類型,數(shù)字 5 和字符串 5 是不同的(參見實(shí)例 2)。 |
-
返回值:如果在數(shù)組中找到指定的鍵值,則返回對應(yīng)的鍵名,否則返回 FALSE。如果在數(shù)組中找到鍵值超過一次,則返回第一次找到的鍵值所匹配的鍵名。
1,"name"=>"李華","age"=>23); var_dump($arr); echo "指定值'李華'對應(yīng)的鍵名為:".array_search("李華",$arr); ?>
推薦學(xué)習(xí):《PHP視頻教程》