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


How to choose first key of foreach() within a foreach()

我似乎无法正确工作,它只是返回每个值0。我只想要 data1 下的第一个键,所以 1111 和 3333 的值。如果我将键添加到 value0,我会得到"1"作为其值,并且显示相同数量的键。在此示例中,有四个,只有两个应该返回。

杰森:

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

如果你想要两个数组 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

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

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

应该给你:

11113333