Histogramm mit "array_count_values()"

Vertigo21

Erfahrenes Mitglied
Hallo zusammen.

Ich bin grade dabei eine Funktion für Histogramme zu schreiben. Bei meinen Nachforschungen bin ich auf die nützliche Funktion array_count_values() gestossen. Das ist ja im Prinzip genau was ich dafür brauche: Eine Funktion, die mir genau ausgibt, wie oft welcher Wert in meinem Array steht. Allerdings komme ich mit den Rückgabewerten der Funktion nicht so ganz klar.

Gibt man das Ergebnis mit "print_r" aus, so erhält man folgendes:
[abc] => 3
[def] => 5
[xyz] => 1
etc.

Allerdings bräuchte ich für die Ausgabe eher so etwas wie ein Array mit jeweils zwei eigenen Elementen pro Element, also z.B.
array[0] = abc ; array[0][0] = 3
array[1] = def ; array[1][0] = 5
array[2] = xyz ; array[2][0] = 1
etc.

Kann man das irgendwie umwandeln oder bin ich grade total auf dem falschen Dampfer?
 
Dann mach dir das doch selbst:
PHP:
$tmp = array_count_values($array);
$array = array();
foreach( $tmp as $key => $value ) {
	$array[] = array($key, $value);
}
print_r($array);
 
Sehr gut, genau das suchte ich.

Aber noch eine Frage zu deiner Lösung:
Das "=>" bedeutet nur, dass man auf die Elemente eines mehrdimensionalen Arrays zugreift, richtig? Oder wird das noch an anderer Stelle benötigt?

(Sry, wegen der Anfängerfrage, aber ich bin mit der ganzen Mehrdimensionalität noch nicht so ganz grün)
 
Nein, da greifst du nur auf ein Eindimensionales Array zu.

Schau dir mal die Doku zu foreach an: PHP: foreach - Manual

Mit dem => Kannst du auf die Keys bei assoziativen Array draufzugreifen. Wenn dir das was sagt :)

;)
 
Zurück