具有要访问的特定键的Object内的数组

时间:2017-06-08 08:50:09

标签: php

所以我在这里有一个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}}是否可能?

2 个答案:

答案 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 ....序列。