找到一个存在于数组子键中的键?

时间:2012-06-14 16:01:49

标签: php multidimensional-array array-key-exists

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

例如,我有这个数组,

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 个答案:

答案 0 :(得分: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');

答案 1 :(得分:0)

难道你不能只是遍历外部数组,检查内部的每个数组中的密钥吗?

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

答案 2 :(得分:0)

foreach()根数组,然后是array_key_exists()

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

答案 3 :(得分:0)

这里的代码看起来不错,但是我想知道数组的来源或定义的位置?一个可能缩小范围的建议是在$ this->内容上使用is_array以确保它是一个正确的数组。

答案 4 :(得分:0)

我实际上不会使用它,因为它不是很明确的代码,但是,对于php 5.4来说,这是一个很酷的内容。

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