1
我有一個遞歸的數組搜索功能,以前一直在工作的一種享受。出於某種原因,儘管現在它似乎告訴我存在於陣列中的事實實際上並不存在。爲什麼我的遞歸數組搜索不能在這個數組數據上工作?
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';
}
我得到結果:找到 它顯然不在陣列。也許我的功能從未奏效。也許我的頭在倒退。任何意識形態?
注:我也得到結果:發現當我搜索湯姆或John o.O
您發佈的代碼在我的本地計算機和[CodePad](http://codepad.org/KWwjuDjg)上工作得很好。 –
和$ search實際上包含什麼? – Catalin