【问题标题】:Access PHP data from Array within an Array从数组中的数组访问 PHP 数据
【发布时间】:2015-01-07 20:35:07
【问题描述】:

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

感谢大家的帮助!

【问题讨论】:

  • 不懂问题。
  • 很抱歉,如果不清楚。我是 PHP 新手,我已经尽力了。但是下面有三个很好的答案,所以一切都准备好了!

标签: php arrays vimeo


【解决方案1】:

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

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

【讨论】:

  • 非常感谢您的帮助!
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    有人喜欢

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多