0

多次元配列内の特定のキーのみを検索する関数を作成しました (すべての要素を検索するin_arrayandと混同しないでくださいarray_search。一致する多次元配列内のサブ配列のキーを返そうとしています。

$array = array(array("hello1", "hello2"), array("test1", "test2"));
function search_custom($needle, $specific_key) {
    global $array;
    foreach($array as $value) {
        /* only searches specific key in the sub-arrays */
        if($needle == $value[$specific_key]) {
            return key($value); /* should return 1? */
        }
    }
}
print_r(search_custom("test2", 1)); /* search only in element 1 of sub-arrays */

「test2」がマルチ配列の要素 1 にあるにもかかわらず、これは残念ながら「0」を出力します。

4

1 に答える 1

0

の使用key()が間違っています。配列が必要です。ただし、foreachキーを提供することができます。探す必要はありません。

$array = array(array("hello1", "hello2"), array("test1", "test2"));
function search_custom($needle, $specific_key) {
    global $array;
    foreach($array as $key=>$value) {
        /* only searches specific key in the sub-arrays */
        if($needle == $value[$specific_key]) {
            return $key;
        }
    }
}
print_r(search_custom("test2", 1)); /* search only in element 1 of sub-arrays */
于 2012-09-19T00:14:41.100 に答える