Ich möchte die Daten einiger Zeilen basierend auf den Werten zweier Spalten gruppieren und summieren.
Meine Eingabe ist:
$array = [ ['FA',12.9], ['FA',12.9], ['FB',12.2], ['FC',12.3], ['FA',12.9], ['FB',12.9], ['FA',12.4], ];
Ich möchte die gruppierten Zeilenwerte als Zeichenfolge ausgeben, gefolgt von einem x
und der Gesamtzahl der Vorkommen im folgenden Format:
FA 12.9x3 FB 12,2x3
Ich habe Code geschrieben, um das Vorkommen eines Werts in jeder Gruppe zu zählen, weiß aber nicht, wie ich ihn in diesem Format ausdrucken soll:
$new = []; foreach ($array as $key=> $value) { if (!array_key_exists($value[0],$new)) { $new[$value[0]]=[strval($value[1])=>1]; } anders { if (!array_key_exists(strval($value[1]),$new[$value[0]])) { $new[$value[0]][strval($value[1])]=1; // $no+=1; } anders { $count= $new[$value[0]]; $count=$count[strval($value[1])]; $count+=1; $new[$value[0]][strval($value[1])]=$count; } } }
Kann dieser Code optimiert und im richtigen Format gedruckt werden?
Gewünschte Ausgabe:
FA 12.9x3 FB 12,2x1 FC 12,3x1 FB 12,9x1 FA 12,4x1
使用
array_reduce
以一种特殊而有用的方式,我们可以按名称将项目进行分组。然后再按值进行分组并计数。这个想法是传递一个累积值作为键的数组。输出: