php循环json数组


php loop through json array

我有一个json字符串,如下所示:

$fields_string = '
{"fields":
   {"customers":[{"name":"john","id":"d1"},
                 {"name":"mike","id":"d2"},
                 {"name":"andrew","id":"d3"},
                 {"name":"peter","id":"d4"}]
   }
}'

如何打印每个名字?我稍后会在html选择选项中使用它们,我知道如何做到这一点。但我没能把绳子解开。以下是我尝试过的东西:

$obj = json_decode($fields_string);
$fields_detail = $obj-?{"fields"}->{"customers"};

在这一点上,我可以通过echo json_encode($fields_detail)打印出客户阵列,但在此之前,我想使用foreach获得名称分解。我试了好几次,都没用。有人能帮忙吗。

谢谢!

Customers是一个对象数组,因此迭代每个对象并读取属性应该可以工作。

foreach ($fields_detail as $customer) {
  echo $customer->name;
}

类似这样的东西:

$data = json_decode($fields_string, true); // return array not object
foreach($data['fields']['customers'] as $key => $customer) {
 echo $customer['name']; 
}

通过fields->customers:访问名称

$obj = json_decode($fields_string);
foreach($obj->fields->customers as $customer)
{
    echo $customer->name . "'n";
}

演示

foreach($obj->fields->customers as $fields)
echo $fields->name;