0

我构建了一个函数来仅搜索多维数组中的特定键(不要混淆in_arrayarray_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 回答