在PHP(Laravel框架)中如何合并数组属性并为新数组新增字段?
Laravel 生成继承原有数组属性的新数组方案
你可以直接使用 Laravel 提供的集合操作完成需求,遍历原有$info数组的每一项,追加brand字段后返回即可,实现代码如下:
首先定义基础数据:
$info = [ ['id' => 1, 'color'=> 'blue'], ['id' => 2, 'color'=> 'red'], ['id' => 3, 'color'=> 'yellow'], ]; // 要追加的公共字段 $extraAttr = ['brand' => 'toyota'];
方案1:Laravel 集合实现(推荐)
$cars = collect($info)->map(function ($item) use ($extraAttr) { return array_merge($item, $extraAttr); })->toArray();
方案2:原生PHP实现
$cars = array_map(function ($item) use ($extraAttr) { return array_merge($item, $extraAttr); }, $info);
两种方案最终生成的$cars数组结构一致,输出结果如下:
[ ['id' => 1, 'color' => 'blue', 'brand' => 'toyota'], ['id' => 2, 'color' => 'red', 'brand' => 'toyota'], ['id' => 3, 'color' => 'yellow', 'brand' => 'toyota'], ]
如果需要给不同的项设置不同的brand值,只需在回调函数中根据$item的属性动态赋值即可。
内容的提问来源于stack exchange,提问作者Sergio AC
相关产品推荐
相关产品推荐

