2D数组中的array_search导致无限循环

时间:2013-01-22 15:55:35

标签: php arrays multidimensional-array infinite-loop

我想在2D数组中搜索。所以创建这个函数:

function array_search_2d($needle, $haystack){
    foreach($haystack as $k => $h){ 
        $key = array_search($needle, $h);
        if($key !== false){
            return array($k, $key);
        }
    }
    return false;
}

但它会导致无限循环。和webserver下降...

我的错误在哪里?我查了很多,但找不到错误。

1 个答案:

答案 0 :(得分:1)

看起来不错,我测试了它:

<?PHP

function array_search_2d($needle, $haystack){
    foreach($haystack as $k => $h){ 
        $key = array_search($needle, $h);
        if($key !== false){
            return array($k, $key);
        }
    }
    return false;
}


print_r(array_search_2d(
    'foo',  
    array(
        array(
            'muh',
            'buh',
            'too',
            'brr',
        ),
        array(
            'grr',
            'foo',
            'fuu',
            'brr',
        ),
        array(
            'lop',
            'uio',
            'rvv',
            'dvv',
        ),
    )   
));

输出是:

Array ( 
  [0] => 1 
  [1] => 1 
)

你的问题在其他地方接缝。

请提供完整的问题代码。