从Array中的Array访问PHP数据

时间:2015-01-07 20:35:07

标签: php arrays vimeo

新手PHP问题:

我使用Vimeo API访问视频信息,并使用PHP接收初始数据数组。我知道如何使用以下调用来访问数据:

echo $array['body']['description'];

但我需要访问这样的数据,其中包括下载'将通过

访问
echo $array['body']['download'];

特别是在质量被声明为来源的地方,因为我不需要其他的。从中我需要链接。

"download": [
    {
        "quality": "mobile",
        "type": "video/mp4",
        "width": 480,
        "height": 270,
        "expires": "2015-01-07T18:51:48+00:00",
        "link": "LINK",
        "created_time": "2015-01-02T18:47:11+00:00"
    },
    {
        "quality": "source",
        "type": "source",
        "width": 1920,
        "height": 1080,
        "expires": "2015-01-07T18:51:48+00:00",
        "link": "LINK",
        "created_time": "2015-01-02T18:25:19+00:00"
    }
]

谢谢大家的帮助!

3 个答案:

答案 0 :(得分:1)

您可以遍历数组$array['body']['download'],然后检查quality的值。如果等于source,则获取链接。

foreach( $array['body']['download'] as $innerArray ){
  if( $innerArray['quality'] === 'source' ){
    echo $innerArray['link'];
  }
}

答案 1 :(得分:1)

如果要按阵列中的属性过滤数组,可以使用自己的过滤器use array_filter进行调用。在您的情况下,请尝试:

$downloads = array_filter($array['body']['download'], function($download) {
    return $download['quality'] === 'source';
});

答案 2 :(得分:0)

有些喜欢

$arr = $array['body']['download'];
$link = '';
for($i = 0; $i <count($arr); $i ++ ){
    if(@$arr[$i]['quality'] == 'source') {
        $link = @arr[$i]['link'];
        break;
    }
}
echo $link;