Regroupez par groupe, calculez la somme des occurrences de chaque groupe et imprimez les données sous forme de chaîne formatée
P粉970736384
2023-09-05 22:43:27
<p>Je souhaite regrouper et additionner les données de certaines lignes en fonction des valeurs de deux colonnes. </p>
<p>Mon entrée est :</p>
<pre class="brush:php;toolbar:false;">$array = [
['FA',12.9],
['FA',12.9],
['FB',12.2],
['FC',12.3],
['FA',12.9],
['FB',12.9],
['FA',12.4],
];≪/pré>
<p>Je souhaite imprimer les valeurs de lignes groupées sous forme de chaîne, suivies d'un <code>x</code> et du nombre total d'occurrences, au format suivant : </p>
<pre class="brush:php;toolbar:false;">FA 12.9x3
FB 12,2x3</pré>
<p>J'ai écrit du code pour compter les occurrences d'une valeur dans chaque groupe, mais je ne sais pas comment l'imprimer dans ce format : </p>
<pre class="brush:php;toolbar:false;">$new = [];
foreach ($array as $key=> $value) {
if (!array_key_exists($value[0],$new)) {
$new[$value[0]]=[strval($value[1])=>1];
}
autre {
if (!array_key_exists(strval($value[1]),$new[$value[0]])) {
$new[$value[0]][strval($value[1])]=1;
// $non+=1;
}
autre {
$count= $nouveau[$value[0]];
$count=$count[strval($value[1])];
$compte+=1 ;
$new[$value[0]][strval($value[1])]=$count;
}
}
}</pré>
<p>Ce code peut-il être optimisé et imprimé dans le bon format ? </p>
<p>Sortie souhaitée : </p>
<pre class="brush:php;toolbar:false;">FA 12.9x3
FB 12,2x1
FC 12,3x1
FB12,9x1
FA 12,4x1</pré></p>
Utilisation
array_reduce
D'une manière spéciale et utile, nous pouvons regrouper les projets par nom. Regroupez ensuite par valeur et comptez. L'idée est de transmettre un tableau avec les valeurs accumulées comme clés.Sortie :