请求中子数组中的Laravel合并字段



我收到来自请求的数据:

array:2 [
0 => array:3 [
"from" => 0
"to" => 5
"earned" => 0
]
1 => array:3 [
"from" => 5
"to" => 10
"earned" => 1
]
]

我想将brand_id添加到每个子数组中

我知道我可以将一个字段合并到请求中,比如:

$request->merge([
'brand_id' => $brand_id,
]);

结果是:

array:3 [
0 => array:3 [
"from" => 0
"to" => 5
"earned" => 0
]
1 => array:3 [
"from" => 5
"to" => 10
"earned" => 1
]
"brand_id" => "1"
]

我希望结果在哪里:

array:2 [
0 => array:4 [
"from" => 0
"to" => 5
"earned" => 0
"brand_id" => "1"
]
1 => array:4 [
"from" => 5
"to" => 10
"earned" => 1
"brand_id" => "1"
]
]

如果有可能做到这一点,那就太好了:

$request->merge([
'*.brand_id' => $brand_id,
]);

注意:我已经检查了这个如何使用merge替换Laravel请求中的嵌套数组值?但如果我要使用foreach,我就不需要进行请求合并。此外,Laravel 8可能还有一些新功能。

请尝试以下代码。您可以迭代每个元素并进行合并。(假设您使用的是请求对象(

$mergedArray = array_map(function($element) use ($brand_id){ 
return array_merge($element, ['brand_id' => $brand_id]); 
}, $request->all())

最新更新