在数组的子键中查找一个键是否存在?

3

如何检查一个数组的子键中是否存在某个键?如果找到该项的键,则返回该项。

例如,我有以下数组:

Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [quantity_request] => 1
                    [time_created] => 1339688613
                    [variant] => Array
                        (
                        )

                )

        )

    [1] => Array
        (
            [b] => Array
                (
                    [quantity_request] => 1
                    [time_created] => 1339688631
                    [variant] => Array
                        (
                        )

                )

        )

    [2] => Array
        (
            [c] => Array
                (
                    [quantity_request] => 1
                    [time_created] => 1339688959
                    [variant] => Array
                        (
                        )

                )

        )

)

我想找到键'b'并返回其下的所有内容,就像这样:

[b] => Array
                (
                    [quantity_request] => 1
                    [time_created] => 1339688631
                    [variant] => Array
                        (
                        )

                )

我尝试使用此方法,但没有返回任何结果。
if (array_key_exists('b', $this->content)) {
                echo "The 'b' element is in the array";

}

有什么想法吗?
5个回答

1
function get_letter($letter){
    foreach($this->content as $v){
        if(array_key_exists($letter, $v) {
            return $v[$letter];
        }
    }
    return false;
}

$array = get_letter('a');

0

你不能只是循环遍历外部数组,检查其中每个数组是否包含该键吗?

foreach($this->content as $arr) {
  if(array_key_exists('b', $arr) {
    echo "Found it";
  }
}

0

很好,又有一个变体:

array_merge(... $array)['b']

0

遍历根数组,然后使用array_key_exists()

foreach ($array as $key => $value) {
    if (array_key_exists('b', $array[$key])) {
        return $array[$key]['b'];
    }
}

0

我不会真正使用这个代码,因为它不够清晰,但是对于 PHP 5.4 来说,这是一个很酷的一行代码。

$val = call_user_func_array('array_merge', $array)['b'];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接