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

无需for循环如何给二维数组子项添加department_id以支持批量插入

方案1:使用原生PHP array_walk 原地修改数组

不需要重新赋值,直接对原数组生效:

$departmentId = 1;
// 直接遍历修改person数组的每个子元素
array_walk($person, function(&$item) use ($departmentId) {
    $item['department_id'] = $departmentId;
});

方案2:使用原生PHP array_map 返回新数组

如果不想修改原数组,可以用这个方法生成处理后的新数组:

$departmentId = 1;
$person = array_map(function($item) use ($departmentId) {
    $item['department_id'] = $departmentId;
    return $item;
}, $person);

方案3:Laravel 集合处理(推荐,适配你正在使用的Eloquent ORM场景)

Laravel自带的集合类封装了更简洁的写法,代码可读性更高:

$departmentId = 1;
$person = collect($person)->map(function($item) use ($departmentId) {
    return array_merge($item, ['department_id' => $departmentId]);
})->all();

// PHP 7.4+ 可以用箭头函数简化成一行
$person = collect($person)->map(fn($item) => $item + ['department_id' => 1])->all();

以上三种方案都不需要手动写for循环处理,处理完的数组就可以直接传给Model::insert()做批量插入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:06:02