查詢步驟:1、利用array_values()函數重設數組鍵名,將陣列轉為索引數組,語法「array_values(數組)」;2、利用array_search()函數取得指定值在索引數組中的位置(索引值1)即可,語法「array_search("指定值",索引數組) 1」。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
在PHP中,可以使用array_values()和array_search()函數來查詢指定值是陣列中的第幾個元素。
實作步驟:
步驟1:利用array_values()函數將陣列轉換成索引陣列
##array_values()函數傳回包含數組中所有的值的數組。 簡單來說,函數可以重置陣列鍵名,將鍵名轉換為從0開始的索引值。<?php header('content-type:text/html;charset=utf-8'); $arr=array("a"=>"aa","b"=>"bb","c"=>"cc","d"=>"dd","e"=>"ee"); var_dump($arr); $values=array_values($arr); var_dump($values); ?>
步驟2:利用array_search()函數取得指定值在索引數組中的位置
array_search() 函數搜索指定鍵值,並傳回對應的鍵名,即傳回對應的索引值。 因為索引值是從0開始計數的,和準確位置值之間差值為1;所以將索引值1即可查詢指定值是數組中的第幾個元素。
<?php header('content-type:text/html;charset=utf-8'); $arr=array("a"=>"aa","b"=>"bb","c"=>"cc","d"=>"dd","e"=>"ee"); var_dump($arr); $values=array_values($arr); var_dump($values); $index=array_search("bb",$values,true)+1; echo "指定值是数组中的第 $index 个元素"; ?>
將關鍵程式碼封裝:
<?php header('content-type:text/html;charset=utf-8'); function f($a,$s){ $v=array_values($a); $index=array_search($s,$v,true)+1; echo "指定值 $s 是数组中的第 $index 个元素<br>"; } $arr=array("a"=>"aa","b"=>"bb","c"=>"cc","d"=>"dd","e"=>"ee"); var_dump($arr); f($arr,"bb"); f($arr,"aa"); f($arr,"dd"); ?>
array_search() 函數在陣列中搜尋某個鍵值,並傳回對應的鍵名。 | |
---|---|
描述 | |
必要。規定在數組中搜尋的鍵值。 | |
必要。規定被搜尋的陣列。 |
| true