У меня есть функция поиска по рекурсивному массиву, которая ранее работала с лечением. По какой-то причине теперь, похоже, говорится, что в массиве есть вещи, которых на самом деле нет.
IE, у меня есть такой массив
Array
(
[0] => Array
(
[name] => people
[groups] => Array
(
[0] => Array
(
[name] => tom
)
[1] => Array
(
[name] => john
)
)
)
)
И моя функция рекурсивного поиска:
function searchArrayRecursive($needle, $haystack){
foreach ($haystack as $key => $arr) {
if(is_array($arr)) {
$ret=searchArrayRecursive($needle, $arr);
if($ret!=-1) return $key.','.$ret;
} else {
if($arr == $needle) return (string)$key;
}
}
return -1;
}
Однако, если бы я сделал следующее:
$search = searchArrayRecursive('kim',$the_array);
if($search != -1) {
echo 'result: found<br />';
} else {
echo 'result: not found';
}
Я получаю результат: найдено
Его явно нет в массиве. Может быть, моя функция никогда не работала. возможно мои головы назад. Есть идеи?
примечание: я также получаю результат: найдено при поиске Тома или Джона о.О