У меня есть следующий массив:Добавление значений в многомерном массиве
array:3 [▼
0 => array:2 [▼
"modId" => "3"
"prdWt" => 1500.0
]
1 => array:2 [▼
"modId" => "8"
"prdWt" => 50.0
]
2 => array:2 [▼
"modId" => "8"
"prdWt" => 10.0
]
]
То, что я пытаюсь достичь этого, массив ребенок должен сложить значения из prdWt
если modId
такое же.
Что я хочу:
array:2 [▼
0 => array:2 [▼
"modId" => "3"
"prdWt" => 1500.0
]
1 => array:2 [▼
"modId" => "8"
"prdWt" => 60.0
]
]
код до сих пор, что я пробовал:
//$prdModWt is the parent array coming from session
foreach ($prdModWt as $prd) {
$val = $this->checkKey($prdModWt, 'modId', $prd['modId']);
var_dump($val);
$a[] = $this->sum_index($prdModWt, 'prdWt');
}
public function sum_index($arr, $col_name)
{
$sum = 0;
foreach ($arr as $item) {
$sum += $item[$col_name];
}
return $sum;
}
public function checkKey($array, $key, $val)
{
foreach ($array as $item) {
if (isset($item[$key]) && $item[$key] == $val) {
return true;
}
}
return false;
}
Я знаю, что это слишком просто, чтобы достичь, но я уверен, не в этом. Так любезно помогите мне.
P.S. Родительский массив является динамическим .. Значение значений происходит только из сеанса, но значения сохраняются в сеансе после извлечения из базы данных.
Спасибо .. Ваше решение работало как шарм .. :) –
Добро пожаловать. Рад, что это помогло вам ... –