Funderare I jag förstår dig problemet, ger detta sedan:),
// matar in samling
$array = samling (
samling (”a-” => 10),
samling (”b-” => 20),
samling (”c-” => 20),
samling (”c-” => 15)
);
// skapar en ny samling för lagring
$newArray = samling ();
// kretsar till och med varje objekt
foreach ($array som $item) {
// fynd som samlingen stämm av objektet ([”a”]… [”c”], etc.)
$keys = array_keys ($item);
//, om stämm räkning, är vad vi förväntar
om, == 1 (för räkning ($keys)) {
Den // kontrollen, om denna värderar, har redan bearbetats
om (array_key_exists ($keys [0], $newArray)) {
// om så därefter förhöjning räkningen och tillfogar värdera
$newArray [$keys [0]] [”räkningen”] ++;
$newArray [$keys [0]] [”värdera”], += $item [$keys [0]];
} annars {
// annat klokt tillfogar detta objekt till den nya samlingen
$newArray [$keys [0]] = samling (
”räknings” => 1,
”värdera” => $item [$keys [0]]
);
}
}
}
// i genomsnitt uppgå till värderar och formaterar ut in i tillverkade det required
$outputArray = samling ();
foreach ($newArray som $key-=> &$value) {
$outputArray [] = samling ($key-=> ($value [”värdera”],/= $value [”räkning”]));
}
// tillverkar samling
var_dump ($finalArray);