如何在foreach()中选择foreach()的第一个键

时间:2014-12-25 06:45:06

标签: php json foreach

我似乎无法正常工作它只返回value0。我只想要data1下的第一个键,所以值为1111和3333.如果我将一个键添加到value0,我将得到“1”作为其值,并显示相同的数量。在这个例子中有四个,只有两个应该返回。

JSON:

{
"json": "success",
"data": [
    {
        "data0": "123",
        "data1": [
            {
                "value0": "1111",
                "value1": "aaaa"
            },
            {
                "value0": "2222",
                "value1": "bbbb"
            }
        ]
    },
    {
        "data0": "abc",
        "data1": [
            {
                "value0": "3333",
                "value1": "cccc"
            },
            {
                "value0": "4444",
                "value1": "dddd"
            }
        ]
    }
],
"number": 300,
"end": ""
}

PHP:

foreach( $json->data as $data) {
    foreach($data->data1 as $value) {
        echo "{$value->value0}<br>";
    }
}

2 个答案:

答案 0 :(得分:0)

如果你想要数组0索引

$json = json_decode($json, true);
foreach( $json['data'] as $data) {
  echo $data['data1'][0]['value0']; //11113333 
}

或直接使用而不使用foreach获取一个值

echo $json['data'][0]['data1'][0]['value0']; //1111

答案 1 :(得分:0)

要保留对象版本,可以这样循环:

$jsonObj    =   json_decode($json);

foreach($jsonObj as $value) {
    foreach($value as $data => $object) {
            echo $object->data1[0]->value0;
        }
    }

应该给你:

11113333