0

二次元配列で検索したい。したがって、この関数を作成します。

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;
}

しかし、それは無限ループを引き起こします。そしてウェブサーバーダウン...

私の間違いはどこですか?いろいろ見直しましたが、バグは見つかりませんでした。

4

1 に答える 1

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 
)

あなたの問題はどこか別の場所にあると思われます。

完全な問題コードを提供してください。

于 2013-01-22T16:01:53.777 に答える