获取数组内部的数组,而不知道数组的第一层是什么

时间:2013-12-11 11:18:27

标签: php arrays

echo $merchant_pic['shop']['campaign'];

我知道这会给我campaign的价值。但首先我必须知道数组的第一层是什么 - shop

问题是:第一层可能是任何东西。

有没有办法在不知道/定义第一层的情况下获取第二层数组的值?

2 个答案:

答案 0 :(得分:2)

如果您不知道$merchant_pic内目标项的键,那么 知道它相对于其兄弟姐妹的位置(它是第一项吗?最后一项?第三?)。

如果这是$merchant_pic中唯一的(或第一个)项目,那么轻松获得它的一种方法是reset($merchant_pic),所以你会写

echo reset($merchant_pic)['campaign']; // requires PHP >= 5.4

答案 1 :(得分:0)

您可以循环键直到找到一个

<?php
$merchant_pic['not_shop'] = array(
    'rrr' => 'aaa',
    2 => 'a',
    'foo' => 'bar'
);
$merchant_pic['shop'] = array(
    'bla' => 1,
    'asd' => 2,
    'campaign' => 'true (hit here)',
    'qwe' => 3
);

foreach ($merchant_pic as $key => $value) {
    if(isset($merchant_pic[$key]['campaign'])) {
        echo $merchant_pic[$key]['campaign'];
    }

}

输出:true (hit here)

在这种情况下,我不知道$ key是什么。它是shop,但它可以是not_shop,也可以是两者或其他键。它将遍历所有键,每次返回true isset()时,它都会打印出来。