You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PHP多维数组拆分为分类数组与按索引对齐的合集数组

PHP数组转换实现方案

完整实现代码

<?php
// 你的原始数组
$choices = [
    ['horror' => ["Rosemary's Baby","Cujo","Children Of The Corn", "Congo"]],
    ['romance' => ["Sleepless In Seattle", "You've Got Mail", "Crazy Rich Asians", "The Notebook"]],
    ['sci_fi' => ["Alien", "Star Trek", "Star Wars", "Space Invaders"]]
];

$genres = [];
$categoryLists = [];

foreach ($choices as $categoryItem) {
    // 提取当前分类名称
    $currentGenre = key($categoryItem);
    $genres[] = $currentGenre;
    // 收集每个分类下的影片列表
    $categoryLists[] = $categoryItem[$currentGenre];
}

// 转置数组得到按索引对齐的集合
$collections = array_map(null, ...$categoryLists);

// 可取消注释打印验证结果
// print_r($genres);
// print_r($collections);
?>

实现说明

  • 遍历原始$choices数组时,用key()函数直接提取每个子数组的唯一键名,依次存入$genres数组即可得到分类名称数组。
  • 同时把每个分类对应的影片列表存入临时数组$categoryLists。
  • 利用PHP原生array_map的特性:首个参数传入null时,会将后续传入的所有数组按索引位置对齐,相同索引的元素会被组合为新的子数组,配合展开运算符...把临时数组的元素作为参数传入,一步就能得到目标$collections数组。

如果你的业务场景中存在不同分类下影片数量不一致的情况,缺少元素的位置会自动填充为null,你可以根据需求后续追加过滤空值的逻辑即可。

内容的提问来源于stack exchange,提问作者EastsideDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:00:02