PHP如何合并三个数组并生成指定结构的新关联数组
实现方案
你可以通过两种常用方式实现需求,前提是三个数组长度一致、下标为连续数字索引:
方法1:for循环实现(可扩展性高)
适合后续需要额外添加自定义判断逻辑的场景:
<?php // 定义原始数组 $first = [13, 66, 15]; $second = ['append', 'prepend', 'append']; $third = [2, 4, 1]; $new_array = []; // 按下标遍历取值组装 for ($i = 0; $i < count($first); $i++) { $new_array[] = [ 'page' => $first[$i], 'position' => $second[$i], 'priority' => (string)$third[$i] // 如果不需要字符串类型可删除(string)强转 ]; } // 验证输出 print_r($new_array); ?>
方法2:array_map实现(代码更简洁)
不需要额外逻辑时可以用这种写法,代码更精简:
<?php $first = [13, 66, 15]; $second = ['append', 'prepend', 'append']; $third = [2, 4, 1]; $new_array = array_map(function ($page, $position, $priority) { return [ 'page' => $page, 'position' => $position, 'priority' => (string)$priority ]; }, $first, $second, $third); print_r($new_array); ?>
注意事项
- 如果原始数组下标不连续,可先调用
array_values()重置数组索引再执行上述逻辑 - 两种方法输出结果完全匹配你给出的目标结构
内容的提问来源于stack exchange,提问作者Parthavi Patel
相关产品推荐
相关产品推荐

