如何使用 array_column 作为 3 级密钥?
How to use array_column for a 3rd level key?
我一直在使用 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 不像 Javascript 那样优雅,在 JS 中你会这样做:
const videoIds = data.map(item => item.resourceId.videoId);
如果您不想在 PHP 中执行 foreach,您可以做的是:
$videoIds = array_map(function ($item) {
return $item['resourceId']['videoId'];
}, $data);
请注意,这种方法在性能方面没有任何好处,最终我们只是循环遍历数组中的所有项目。
我一直在使用 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 不像 Javascript 那样优雅,在 JS 中你会这样做:
const videoIds = data.map(item => item.resourceId.videoId);
如果您不想在 PHP 中执行 foreach,您可以做的是:
$videoIds = array_map(function ($item) {
return $item['resourceId']['videoId'];
}, $data);
请注意,这种方法在性能方面没有任何好处,最终我们只是循环遍历数组中的所有项目。