Я думаю я понимает вас проблема, дает это тому назад:)
Блок входного сигнала //
$array = блок (
блок (=> «a» 10),
блок (=> 20 «b»),
блок (=> 20 «c»),
блок (=> 15 «c»)
);
// создает новый блок для хранения
$newArray = блок ();
Петля // через каждый деталь
foreach ($array как $item) {
// находит ключей блока деталя ([«a»]… [«c»], etc)
$keys = array_keys ($item);
// если отсчет ключей, то мы надеемся
если (== отсчета ($keys) 1) {, то
Проверка // если это значение уже было обработано
если (array_key_exists, то ($keys [0], $newArray)) {
// если настолько после этого увеличение отсчет и добавляет значение
$newArray [$keys [0]] [«отсчет»] ++;
$newArray [$keys [0]] [«значение»] += $item [$keys [0]];
} еще {
// другое велемудрое добавляет этот деталь к новому блоку
$newArray [$keys [0]] = блок (
=> 1 «отсчета»,
=> $item «значения» [$keys [0]]
);
}
}
}
// усредняет вне значения и форму в необходимый выход
$outputArray = блок ();
foreach ($newArray как => &$value $key) {
$outputArray [] = блок (=> $key ($value [«значение»]/= $value [«отсчет»]));
}
Блок выхода //
var_dump ($finalArray);