Penso che lo capisca problema, dia questo fa:)
Allineamento dell'input di //
$array = allineamento (
allineamento (=> “di a„ 10),
allineamento (=> 20 “di b„),
allineamento (=> 20 “di c„),
allineamento (=> 15 “di c„)
);
// genera un nuovo allineamento per immagazzinaggio
$newArray = allineamento ();
Ciclo di // attraverso ogni articolo
foreach ($array come $item) {
// trova le chiavi di allineamento dell'articolo ([“a„]… [“c„], ecc)
$keys = array_keys ($item);
// se il conteggio di chiavi è che cosa stiamo prevedendo
se (== di conteggio ($keys) 1) {
Controllo di // se questo valore già sia procedato
se (array_key_exists ($keys [0], $newArray)) {
// se così allora aumento il conteggio ed aggiunge il valore
$newArray [$keys [0]] [“conteggio„] ++;
$newArray [$keys [0]] [“valore„] += $item [$keys [0]];
} altrimenti {
// l'altro saggio aggiunge questo articolo al nuovo allineamento
$newArray [$keys [0]] = allineamento (
=> 1 “di conteggio„,
=> $item [$keys [0] “di valore„]
);
}
}
}
// fa la media fuori i valori e la disposizione nell'uscita required
$outputArray = allineamento ();
foreach ($newArray come => &$value di $key) {
$outputArray [] = allineamento (=> di $key ($value [“valore„]/= $value [“conteggio„]));
}
Allineamento di uscita di //
var_dump ($finalArray);