从数组中的数组访问 PHP 数据

Access PHP data from Array within an Array

新手PHP问题在这里:

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

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

但我需要像这样访问数据,其中 'download' 将通过

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

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

"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"
    }
]

谢谢大家的帮助!

您可以遍历数组 $array['body']['download'],然后检查 quality 的值。如果等于 source 则得到 link.

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

有些喜欢

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

如果您想按数组中的属性过滤数组,您可以 use array_filter 使用您自己的可调用过滤器。在你的情况下,尝试:

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