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

Laravel中如何给已有数组的每个子项新增字段且不覆盖原有内容

问题原因

你之前的写法存在两处错误:

  • array_push 函数的返回值为操作后数组的元素总个数,而非修改后的数组本身,因此你赋值给$dat的结果就是数字3。
  • 该写法的作用是向原数组末尾追加一个仅包含points字段的独立子元素,并不是为每个已有的子元素新增points字段。
实现方案

方案1:原生PHP实现

遍历引用赋值

foreach ($response as &$item) {
    $item['points'] = 3;
}
// 操作完后销毁引用变量,避免后续逻辑出现意外赋值
unset($item);

return response()->json(['data' => $response], 200);

array_map 处理

$processedData = array_map(function ($item) {
    $item['points'] = 3;
    return $item;
}, $response);

return response()->json(['data' => $processedData], 200);

方案2:Laravel 集合实现(更推荐)

Laravel 自带的集合类提供了更简洁的数组操作方法,代码可读性更高:

$processedData = collect($response)->map(function ($item) {
    $item['points'] = 3;
    return $item;
});

return response()->json(['data' => $processedData], 200);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:48:03