【问题标题】:How to use array_column for a 3rd level key? [duplicate]如何使用 array_column 作为第三级键? [复制]
【发布时间】:2021-12-28 21:00:44
【问题描述】:

我一直在使用 youtube api。播放列表项的结构如下:

[{
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "thumbnails": {
      (key): {
        "url": string,
        "width": unsigned integer,
        "height": unsigned integer
      }
    },
    "channelTitle": string,
    "playlistId": string,
    "position": unsigned integer,
    "resourceId": {
      "kind": string,
      "videoId": string,
    }
  }]

对于每个项目,我都想提取 videoId(即在 resourceId 中)。 例如,对于多维数组(字段集),我可以使用 array_column array_column($array,'title') 。如何检索 videoId 属性?

【问题讨论】:

标签: php youtube-api


【解决方案1】:

我知道你从哪里来,不幸的是,PHP 不如 Javascript 优雅,在 JS 中你会这样做:

const videoIds = data.map(item => item.resourceId.videoId);

如果您不想在 PHP 中执行 foreach,您可以这样做:

$videoIds = array_map(function ($item) {
    return $item['resourceId']['videoId'];
}, $data);

请注意,这种方法在性能方面没有任何好处,归根结底,我们只是循环遍历数组中的所有项目。

【讨论】:

  • 您可以使用箭头函数表示法进行闭包:$videoIds = array_map(fn($item) => $item['resourceId']['videoId'], $arr);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 2022-08-19
  • 2021-02-03
  • 2023-01-07
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多