有了下面的代碼片段,你有一個總的想法如何做到這一點:
foreach ($people as $i => $person)
{
if (array_key_exists('name', $person) && $person['name'] == 'Waldo')
echo('Waldo found at ' . $i);
}
然後你就可以在上面的代碼片段作爲一般的使用功能,如:
function SearchArray($array, $searchIndex, $searchValue)
{
if (!is_array($array) || $searchIndex == '')
return false;
foreach ($array as $k => $v)
{
if (is_array($v) && array_key_exists($searchIndex, $v) && $v[$searchIndex] == $searchValue)
return $k;
}
return false;
}
並使用它是這樣的:
$foundIndex = SearchArray($people, 'name', 'Waldo'); //Search by name
$foundIndex = SearchArray($people, 'age', 89); //Search by age
但是要注意的函數可以返回0,false,這兩種計算結果爲假(使用類似如果($ foundIndex!== FALSE)或如果($ foundIndex ===假))。
不錯的功能。想想我會聲明函數爲'函數SearchArray(array $ array,...',並跳過'is_array'檢查雖然=) – Svish 2010-07-08 12:41:03
是的,這是更好的,但這需要PHP 5.1 +的工作。 – AlexV 2010-07-08 13:18:16
我知道沒有其他選擇,但仍愚蠢,你真的需要循環數據。 – danger89 2014-04-20 00:56:09