1

多次元配列をキーで検索する次の関数を書きましたが、この関数を key で呼び出すと、見つかった配列に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);
        }   
    }   
}
4

1 に答える 1

1

===を使用して、値型の一致を強制します。0 と "uri" を比較するとゼロになるためtrue、どちらも 0 に評価されると考えてください。PHP がこれらの「緩やかな」比較を処理する方法の詳細については、マニュアルのこのセクションを参照してください。

于 2012-07-08T20:06:43.277 に答える