我有一个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;