我有以下类型的数组。
如何从Input数组中获得所需的输出。
注意:数组是dynamaic
想要与同一product_id的comp_size之和。提前谢谢。
输入数组
array:4 [
0 => array:3 [
"comp_size" => "4.5"
"comp_id" => "10"
"product_id" => "1"
]
1 => array:3 [
"comp_size" => "4.5"
"comp_id" => "11"
"product_id" => "2"
]
2 => array:3 [
"comp_size" => "4.5"
"comp_id" => "12"
"product_id" => "2"
]
3 => array:3 [
"comp_size" => "4.5"
"comp_id" => "13"
"product_id" => "2"
]
]
期望的结果:
[
0 => array [
product_id => 1
total_size => 4.5
]
1 => array[
product_id => 2
total_size => 13.5
]
]
答案 0 :(得分:0)
试试这个,循环遍历数组的所有元素,总结大小值:
<?php
$data = [] // original array;
$sum = [] // result;
foreach ($data as $dt) {
if (!isset($sum[$dt['product_id']])) {
$sum[$dt['product_id']] = 0;
}
$sum[$dt['product_id']] += $dt['comp_size'];
}
?>
答案 1 :(得分:0)
您可以使用Laravel groupBy
的{{1}}和map
函数执行此操作:
Collection
这将使您将来可以更轻松地扩展代码。