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

Laravel中如何为array_map函数传递更多参数?

问题

现有如下PHP代码:

$option1=$res['attributes'][0]['option'];
$option2=$res['attributes'][1]['option'];
$row['variations'] = array_map(function($var) {
    return ['id' => $var];
}, $row['variations']);

当前array_map中的匿名函数仅能接收$var参数,返回的数组只有id字段:

0 => array:1 [▼
    "id" => 3095
  ]
  1 => array:1 [▼
    "id" => 3096
  ]

希望修改后,返回的数组能包含option1和option2字段,目标结构如下:

['id' => $var,
 'option1'=>$option1,
 'option2'=>$option2]

期望的最终输出示例:

0 => array:3 [▼
    "id" => 3095,
    "option1"=>"Blue",
    "option2"=>"M"
  ]
解决方案

在PHP的匿名函数中,通过use关键字可以引入外部作用域的变量,让函数内部能访问$option1和$option2。修改后的代码如下:

$option1=$res['attributes'][0]['option'];
$option2=$res['attributes'][1]['option'];
$row['variations'] = array_map(function($var) use ($option1, $option2) {
    return [
        'id' => $var,
        'option1' => $option1,
        'option2' => $option2
    ];
}, $row['variations']);

修改后,$row['variations']的每个元素都会包含id、option1和option2三个字段,完全符合预期的输出结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:30:46