所以我在这里有一个photo
的对象,在那个对象里面有一堆带有键和&的数组。价值观:
{
"photos": [
{
"logo": false,
"type": "MAIN",
"url": "/uploads/userpics/503892/FiyxpMqMQj.png",
"publicUrl": "https:test.com/medium_FiyxpMqMQj.png"
},
{
"logo": true,
"type": "LOGO",
"url": "/uploads/userpics/503892/kLwxKH6rIx.png",
"publicUrl": "https://test.com/medium_kLwxKH6rIx.png"
},
{
"logo": false,
"type": "MAIN",
"url": "/uploads/userpics/543292/FiyxpMqMQj.png",
"publicUrl": "https:test.com/medium_asd432MQj.png"
}
]
}
我想要的是在将此对象运行到foreach
之后,它会显示或获取键值"publicUrl"
或"logo"=true
的{{1}}是否可能?
答案 0 :(得分:2)
假设$ photos是原始数据并且您已在初级显示数据,那么您可以执行以下操作:
$json=json_decode( $photos );
foreach( $json as $obj ){
if( $obj->logo==true or $obj->type=='LOGO' ){
echo $obj->publicUrl;
}
}
答案 1 :(得分:1)
首先,这不是有效的JSON。但是一旦修复它,json_decode($array, true)会将您的JSON转换为常规数组(第二个参数对此很重要),然后您可以使用普通foreach($array as $key=>$val) { echo "{$k} = {$v}" }
来迭代它。 JSON数组没有自定义键,因此期望0, 1 ....
序列。