Raketenwilli: Warnung vor array_count_values()!

Beitrag lesen

ergänzend zu den Lösungshinweisen, die du schon bekommen hast: Das sind keine Zahlenwerte, sondern Strings.

Und schon haben wir ein typisches PHP-Problem.

Ich habe mal das Beispiel aus der Doc probiert.

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));

Ausgabe:

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Man könnte jetzt etwas wie „toll“ denken. Aber:

<?php
$array = array(1, "hello", "1", "world", "hello", 1.9);
print_r(array_count_values($array));
Warning: array_count_values(): Can only count string and
integer values, entry skipped in /home/fastix/tmp/2.php on line 3
Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

was auch so NICHT stimmt, denn var_dump($array) sagt:

array(6) {
  [0]=>
  int(1)
  [1]=>
  string(5) "hello"
  [2]=>
  string(1) "1"     ### INT 1 != STRING 1: falsch gezählt!
  [3]=>
  string(5) "world"
  [4]=>
  string(5) "hello"
  [5]=>
  float(1.9)        ### Nicht gezählt!
}

Die Doc erklärt auch, wie diverse Werte in Keys umgewandelt werden - und zeigt die Hölle