Je pense que je vous comprends problème, donne ceci il y a :)
Rangée d'entrée de //
$array = rangée (
rangée (=> de « a » 10),
rangée (=> 20 de « b »),
rangée (=> 20 de « c »),
rangée (=> 15 de « c »)
) ;
// créent une nouvelle rangée pour le stockage
$newArray = rangée () ;
Boucle de // par chaque article
foreach ($array comme $item) {
// trouvent les clefs de rangée de l'article ([« a »]… [« c »], etc.)
$keys = array_keys ($item) ;
// si est le compte de clefs ce que nous comptons
si == (de compte ($keys) 1) {
Contrôle de // si cette valeur a été déjà traitée
si (array_key_exists ($keys [0], $newArray)) {
// si tellement puis augmentation le compte et ajoutent la valeur
$newArray [$keys [0]] [« compte »] ++ ;
$newArray [$keys [0]] [« valeur »] += $item [$keys [0]] ;
} autrement {
// l'autre sage ajoutent cet article à la nouvelle rangée
$newArray [$keys [0]] = rangée (
=> 1 de « compte »,
=> $item [$keys [0] de « valeur »]
) ;
}
}
}
// font la moyenne dehors des valeurs et du format dans le rendement required
$outputArray = rangée () ;
foreach ($newArray comme => &$value de $key) {
$outputArray [] = rangée (=> de $key ($value [« valeur »]/= $value [« compte »]));
}
Tableau de sorties de //
var_dump ($finalArray) ;