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";

}

何か案は?

4

4 に答える 4

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');
于 2012-06-14T16:06:58.880 に答える
0

これは明確なコードではないため、実際には使用しませんが、php 5.4 のクールなワンライナーです。

$val = call_user_func_array('array_merge', $array)['b'];
于 2012-06-14T16:51:23.680 に答える
0

外側の配列をループして、内側の各配列のキーをチェックすることはできませんか?

foreach($this->content as $arr) {
  if(array_key_exists('b', $arr) {
    echo "Found it";
  }
}
于 2012-06-14T16:07:06.683 に答える
0

foreach() ルート配列、次にarray_key_exists()

foreach ($array as $key => $value) {
    if (array_key_exists('b', $array[$key])) {
        return $array[$key]['b'];
    }
}
于 2012-06-14T16:08:26.383 に答える