我有一个像这样的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
来解析名称。我试过几次,但没办法。任何人都可以帮忙。
谢谢!
答案 0 :(得分:5)
客户是一个对象数组,因此迭代每个对象并读取属性应该有效。
foreach ($fields_detail as $customer) {
echo $customer->name;
}
答案 1 :(得分:3)
这样的事情:
$data = json_decode($fields_string, true); // return array not object
foreach($data['fields']['customers'] as $key => $customer) {
echo $customer['name'];
}
答案 2 :(得分:1)
通过fields->customers
:
$obj = json_decode($fields_string);
foreach($obj->fields->customers as $customer)
{
echo $customer->name . "\n";
}
答案 3 :(得分:0)
foreach($obj->fields->customers as $fields)
echo $fields->name;