PHP foreach在JSON上使用Array


PHP foreach over JSON with Array

我有一个json返回,如下所示:

[output] => stdClass Object
    (
        [data] => stdClass Object
            (
                [Email] => Array
                    (
                        [0] => test1@AOL.COM
                        [1] => test2@AOL.COM
                    )
                [PhoneNumber] => Array
                    (
                        [0] => 2031234569
                    )
            )

我需要做的是能够循环浏览电话和电子邮件,并将它们全部获取。

我试过:

foreach ($json_result->output->data as $data) {
$phone = $data->PhoneNumber;
$email = $data->Email;
}

但这是空的。有人有主意吗?

PhoneNumberEmail是数组时,您正试图将它们作为属性访问。

foreach ($json_result->output->data->Email as $email_address) {
    echo $email_address;
}
foreach ($json_result->output->data->PhoneNumber as $phone_number) {
    echo $phone_number;
}

最简单的方法是对std对象进行JSON编码,然后将其解码回数组:

$array = json_decode(json_encode($object), true);
foreach($array as $data) {
   $phone = $data->PhoneNumber;
   $email = $data->Email;
}