微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JSON 孩子在 PHP 中只得到第一个孩子

如何解决JSON 孩子在 PHP 中只得到第一个孩子

一整天都在尝试做一些看起来很简单的事情,但我无法从 json 中获取所有子节点(仅获取代码中的第一个子节点):

foreach($obj->data[0]->region as $code_id) {              
    echo $code_id->code_id . "\n"; 
        
}

下面的 JSON 片段:

{
"data": [
        {
        "record_id": 9,"region": [
            {
                "code_id": 2,"code_name": "CA"
            },{
                "code_id": 3,"code_name": "WY"
            }
           
        ]
        },{
        "record_id": 10,"region": [
            {
                "code_id": 4,{
                "code_id": 5,"code_name": "WY"
            }
           
        ]
        }
    ]
}

教程的任何链接或建议都非常感谢:(

解决方法

如果你想遍历两个数组,下面的方法会起作用:

// Loop over everything inside of data
foreach($obj->data as $thing ) {
    // Loop over each region
    foreach($thing->region as $region) {
        echo $region->code_id . "\n";
    }
}

输出为:

2
3
4
5

此处演示:https://3v4l.org/NQTV6

,

试试这个...

不是最优化的解决方案,但应该能让您重回正轨。

foreach($obj->data[0] as $record) { 
    if(isset($record->region)){
        foreach($record->region as $code){
            echo $code->code_id . "\n";
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。