Php 具有特定访问键的对象内的数组
所以我这里有一个Php 具有特定访问键的对象内的数组,php,Php,所以我这里有一个照片的对象,在这个对象内部有一组带有键值的数组: { "photos": [ { "logo": false, "type": "MAIN", "url": "/uploads/userpics/503892/FiyxpMqMQj.png", "publicUrl": "https:test.co
照片的对象
,在这个对象内部有一组带有键值的数组:
{
"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
中之后,它将显示或获取键值“logo”=true
或“type”=“logo”
的“publicUrl”
,这是可能的吗?假设$photos是原始数据,并且您已经在开始级别显示了数据,那么您可以执行以下操作:
$json=json_decode( $photos );
foreach( $json as $obj ){
if( $obj->logo==true or $obj->type=='LOGO' ){
echo $obj->publicUrl;
}
}
首先,这不是一个有效的JSON。但一旦修复了它,就会将JSON转换为常规数组(第二个参数很重要),然后可以使用普通的
foreach($key=>$val的数组){echo“{$k}={$v}”}
对其进行迭代。JSON数组没有自定义键,所以除了0,1….
sequence。您研究过JSON\u解码吗?这将提供一个数组,然后由foreach处理。@Nigel yes我对响应进行了json解码,并对foreach进行了解码,我不知道如何才能得到值为““logo”=true”或“type”的数据数组:“logo”
谢谢你,伙计。”。。让它工作,是的,纠正它不是原始数据我只需要逻辑。。这就是我所做的$parsed_json=json_decode($response,true)$pj=$parsed_json[“response”][“location”];$pt=$pj[‘照片’];foreach($pt as$obj){if($obj['logo']==true或$obj['type']==logo'){$waha=$obj['publicUrl'];$output.='';}