PHP合并两个数组的最优方法 现有自定义实现优化咨询
优化实现方案
你完全可以借助PHP原生函数省略所有中间循环、临时数组和自定义合并函数,仅用一行代码就完成目标合并逻辑,前提是两个数组索引一一对应、长度匹配:
$developers = [ 'Ammar', 'Waqar', 'Sheraz', 'Suleman', ]; $projects = [ 'Sail Caribe', 'Hacker Craft', 'Jackson Demolition', 'Carribean Yacht Charter', ]; // 直接完成合并,无需中间处理步骤 $merged_array = array_map(fn($dev, $project) => [ 'name' => $dev, 'project name' => $project ], $developers, $projects); // 打印结果 echo '<pre>'; print_r($merged_array);
方案说明
- 原生
array_map函数支持同时遍历多个输入数组,按索引同步取出元素传入回调处理,性能远高于自定义的for循环实现 - 短箭头函数(PHP 7.4及以上版本支持)简化了回调逻辑的写法,如果你使用的PHP版本低于7.4,可以替换为传统匿名函数写法:
$merged_array = array_map(function($dev, $project) { return [ 'name' => $dev, 'project name' => $project ]; }, $developers, $projects);
- 如果两个数组长度不匹配,
array_map会自动给较短数组的缺失位置补null,你可以按需先通过array_pad补全两个数组长度再做合并。
内容的提问来源于stack exchange,提问作者Suleman
相关产品推荐
相关产品推荐

