这个数组搜索功能有什么问题?

时间:2012-07-08 20:04:19

标签: php arrays

我编写了以下函数来按键搜索多维数组,但是如果我用键uri调用该函数,它会将具有键0的数组附加到找到的数组。怎么了?

function search_arr($array, $key, &$found) {
    foreach ($array as $k => $each) {
        if ($k == $key) {
            // output of "print $k = $key" is "0 = uri"
            $found[] = $each;
        }   
        if (is_array($each)) {
            search_arr($each, $key, $found);
        }   
    }   
}

1 个答案:

答案 0 :(得分:1)

使用===强制值类型匹配。你得到零,因为比较0和“uri”是true - 将它们视为评估为0.有关PHP如何处理这些“松散”比较的完整细节,请参阅此section of the manual