Этот вопрос может показаться дубликат, но я клянусь, что пытался и пытался тысячи решений в течение многих часов теперь ...PHP Как суммировать значения массива того же ключа
I есть ассоциативный многомерный массив так:
1 =>
array (size=1)
'Pld' =>
array (size=2)
'score_good_answers' => string '1' (length=1)
'score_bad_answers' => string '0' (length=1)
2 =>
array (size=1)
'Aln' =>
array (size=2)
'score_good_answers' => string '0' (length=1)
'score_bad_answers' => string '1' (length=1)
3=>
array (size=1)
'IPS' =>
array (size=2)
'score_good_answers' => string '1' (length=1)
'score_bad_answers' => string '0' (length=1)
4 =>
array (size=1)
'Pld' =>
array (size=2)
'score_good_answers' => string '1' (length=1)
'score_bad_answers' => string '0' (length=1)
5 =>
array (size=1)
'Aln' =>
array (size=2)
'score_good_answers' => string '1' (length=1)
'score_bad_answers' => string '0' (length=1)
6 =>
array (size=1)
'Aln' =>
array (size=2)
'score_good_answers' => string '1' (length=1)
'score_bad_answers' => string '0' (length=1)
ДЛЯ Var_Export
:
1=> array ('Pld' => array ('score_good_answers' => '1', 'score_bad_answers' => '0',),), 2 => array ('Aln' => array ('score_good_answers' => '0', 'score_bad_answers' => '1',),), 3 => array ('IPS' => array ('score_good_answers' => '1', 'score_bad_answers' => '0',),), 4 => array ('Pld' => array ('score_good_answers' => '1', 'score_bad_answers' => '0',),), 5 => array ('Aln' => array ('score_good_answers' => '1', 'score_bad_answers' => '0',),), 6 => array ('Aln' => array ('score_good_answers' => '1', 'score_bad_answers' => '0',),),
Мне нужно ПОЛУЧИТЬ все 'score_good_answers'
и 'score_bad_answers'
для всех Aln
s и Pld
и так далее.
Худший сценарий случая заключается в том, что эти клавиши i.e: являются изменяемыми значениями.
На этом уровне, любое решение, которое работает, будет хорошо оценено.
Я попытался обслуживаемый ответом в этом SO Вопроса:
Однако, это, кажется, бросить несколько ошибок ....
и я попытался еще несколько решений от нескольких SO Вопросов, т.е. , Array sum of value based on same key, How to sum values via the same key and group by other key и многое другое ...
Другим близко один был такой: How to sum same array in php
и три изд:
$array2 = array();
for($f = 0; $f<count($getCategories); $f++){
foreach($getCategories[$i] as $k=>$v) {
if(!isset($array2[$v['Aln']])) {
$array2[$v['Aln']] = $v;
} else {
$array2[$v['Aln']]['score_good_answers'] += $v['score_good_answers'];
}
}
} var_dump($array2);
Я все еще получаю Несколько Errors
включая invalid arguments
undefined offsets
и многое другое
запроса Смиренно для любого предложения.
Большого спасибо
Ну первое, что вы можете сделать, чтобы помочь себе, это выбрать лучше имена переменных; подумайте о том, что означает $ f, $ I, $ v и т. д., на самом деле * означает *, и посмотрите, как читается ваш код, когда вы их подставляете. Создайте также промежуточные переменные, чтобы разбить трудночитаемые выражения типа '$ array2 [$ v ['Aln']] ['score_good_answers'] 'на несколько шагов, с именем, для которого представлено каждое значение по пути. – IMSoP
@IMSoP, Извините за беспорядок, я получил эти имена 'var' из SO-вопроса, который я пытался использовать ... Thanx для обозначения этого –
Пожалуйста, используйте var_export вместо var_dump при вставке в SO, он использует формат, который может быть скопировано непосредственно в php ... – rjdown