PHP中如何将两个数组合并为指定结构的二维数组?
PHP和Laravel实现数组按索引配对合并
PHP原生实现
方法1:使用array_map(数组长度相同时推荐)
array_map可同时遍历多个数组,将对应位置的元素传入回调函数处理,完美匹配需求:
$a = [1, 2]; $b = [3, 4]; $data = array_map(function ($x, $y) { return [$x, $y]; }, $a, $b); // 输出结果:[[1,3],[2,4]]
方法2:循环遍历(适配数组长度不一致场景)
如果两个数组长度可能不同,用循环可灵活处理缺失元素:
$a = [1, 2]; $b = [3, 4]; $data = []; $maxLength = max(count($a), count($b)); for ($i = 0; $i < $maxLength; $i++) { $data[] = [ $a[$i] ?? null, // 可替换为你需要的默认值 $b[$i] ?? null ]; } // 若数组长度不同,会用null填充缺失项,比如$a=[1,2,3],$b=[3,4],结果为[[1,3],[2,4],[3,null]]
Laravel实现:使用集合zip方法
Laravel集合提供的zip方法,专门用于将两个集合的对应元素配对,写法简洁:
$a = collect([1, 2]); $b = collect([3, 4]); $data = $a->zip($b)->toArray(); // 输出结果:[[1,3],[2,4]]
当两个集合长度不同时,zip会自动用null填充较短集合的缺失元素。
内容的提问来源于stack exchange,提问作者Ade
相关产品推荐
相关产品推荐

