【问题标题】:Loop through JSON response using PHP [duplicate]使用 PHP 循环 JSON 响应 [重复]
【发布时间】:2018-11-27 02:50:53
【问题描述】:

我正在通过 PHP cURL 发出 API 请求。

当我运行 echo $response 时,我得到以下 JSON:

JSON(应用程序/json):

{
    "workers": [
        {
            "email": "micky@mcgurk.com",
            "manager": {
                "email": "boss@mcgurk.com"
            }
        },
        {
            "email": "michelle@mcgurk.com",
            "manager": {
                "email": "another_boss@mcgurk.com"
            }
        }
    ]
}

我想循环查看结果并回显电子邮件和相关经理。我该怎么做?

【问题讨论】:

    标签: php json


    【解决方案1】:

    使用PHP的函数json_decode()

    <?php
    $json = '{
        "workers": [
            {
                "email": "micky@mcgurk.com",
                "manager": {
                    "email": "boss@mcgurk.com"
                }
            },
            {
                "email": "michelle@mcgurk.com",
                "manager": {
                    "email": "another_boss@mcgurk.com"
                }
            }
        ]
    }';
    $dec = json_decode($json);
    $users = array();
    if (! empty($dec->workers)) {
        foreach ($dec->workers as $worker) {
            $user['email'] = $worker->email;
            $user['manager_email'] = $worker->manager->email;
            $users[] = $user;
        }
    }
    echo '<pre>';print_r($users);echo '</pre>';
    ?>
    

    输出:

    Array
    (
        [0] => Array
            (
                [email] => micky@mcgurk.com
                [manager_email] => boss@mcgurk.com
            )
    
        [1] => Array
            (
                [email] => michelle@mcgurk.com
                [manager_email] => another_boss@mcgurk.com
            )
    
    )
    

    现在,遍历$dec-&gt;workers,您将获得所需的电子邮件地址。

    【讨论】:

    • 嗨@Pupil - 这太棒了!我正在寻找将这些插入到我的数据库中的表中。而不是print_r($dec-&gt;employees); - 有没有办法循环遍历(foreach?)并输出一行中的每一行?
    • @michaelmcgurk,答案已更新。请验证。
    • 非常感谢,学生。这非常有帮助。在这里也感谢您的耐心等待。我今天学到了很多:-)
    • @michaelmcgurk,没什么特别的。当我还是个新手时,人们帮助我学习。这就是我们成长的方式。 :)
    • 不客气!
    【解决方案2】:
    $data = json_decode($response, true);
    

    【讨论】:

      【解决方案3】:

      查看 json_decode() http://php.net/manual/en/function.json-decode.php

      结果将是一个可以迭代的关联数组(或对象)

      【讨论】:

      • 太棒了,谢谢你,埃里克!
      猜你喜欢
      • 2021-04-10
      • 2015-08-05
      • 1970-01-01
      • 2020-06-26
      • 2012-07-23
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 2019-12-09
      相关资源
      最近更新 更多