С помощью следующего фрагмента у вас есть общее представление о том, как это сделать:
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, что в обоих случаях равно false (используйте что-то вроде if ($ foundIndex! == false) или if ($ foundIndex === false) ).