PHP array length mit count() und sizeof() ermitteln
Die PHP Array-Länge ist die Anzahl der Elemente in einem Array, und count() ist der Standardweg dafür. Um Array-Elemente in PHP zu zählen, rufe count($array) auf (oder sizeof($array), das dieselbe Funktion aufruft). count() liefert die Anzahl der Elemente auf oberster Ebene sowohl für indizierte als auch für assoziative Arrays. Bei verschachtelten Strukturen zählt COUNT_RECURSIVE auch Unter-Arrays mit, daher nur nutzen, wenn genau dieses Verhalten gewünscht ist.
PHP Array Length Beispiel Für Das Zählen Von Elementen
Ausgabe:
Die Ausgabe erscheint hier...
Ausgabe:
3
So Funktioniert Dieses Beispiel
$farbenenthält ein indiziertes Array mit drei String-Elementen.count($farben)gibt3zurück - die Gesamtzahl der Elemente auf oberster Ebene. Das gilt genauso für assoziative Arrays:count()zählt Schlüssel, nicht Werte.- Ein leeres Array ergibt
0, daher eignet sichcount()auch als Leerheitsprüfung im Vergleich mit0.
So Ermittelst Du Die Array-Länge In PHP
PHP hat keine .length-Eigenschaft für Arrays. Die Funktion count() ist der Standardweg, um die Länge eines PHP-Arrays zu ermitteln, und sie funktioniert auch für Objekte, die Countable implementieren. Der Rückgabewert ist immer ein int. Seit PHP 8.0 löst count() bei nicht zählbaren Werten einen TypeError aus, daher mit is_countable() absichern, wenn der Wert möglicherweise kein Array ist.
Häufige Fehler Bei PHP count()
strlen() statt count() verwenden
Falsch:
$elemente = ["a", "b", "c"];
echo strlen($elemente); // TypeError ab PHP 8+
Richtig:
echo count($elemente); // 3
strlen() misst die Byte-Länge einer Zeichenkette, nicht die Anzahl der Array-Elemente.
count() bei nicht zählbaren Werten aufrufen
Falsch:
$moeglichesArray = "abc";
echo count($moeglichesArray); // TypeError ab PHP 8+
Richtig:
$laenge = is_countable($moeglichesArray) ? count($moeglichesArray) : 0;
echo $laenge;
Wenn ein Wert ein Skalar oder null sein kann, prüfe vor dem Zählen mit is_countable().
count() vs sizeof() in PHP
count() | sizeof() |
|---|---|
| Kanonische Funktion in der PHP-Dokumentation. | Alias von count() - identisches Verhalten und gleiche Performance. |
| In PHP-Codebasen allgemein als Standard erkennbar. | Kann Entwickler aus C/C++ verwirren, wo sizeof die Bytegröße zurückgibt. |
Bevorzuge in neuem Code immer count(). sizeof() existiert aus Kompatibilitätsgründen, bringt aber keinen Mehrwert und kann Leser mit anderem Sprachhintergrund in die Irre führen.
COUNT_NORMAL vs COUNT_RECURSIVE
$gruppen = ["obst" => ["apfel", "birne"], "farben" => ["rot"]];
echo count($gruppen); // 2 (Schlüssel auf oberster Ebene)
echo count($gruppen, COUNT_RECURSIVE); // 5 (2 Schlüssel + 3 Werte)
COUNT_NORMAL (Standard, Wert 0) zählt nur Elemente auf oberster Ebene. COUNT_RECURSIVE (Wert 1) durchläuft alle verschachtelten Arrays und addiert deren Elemente zur Summe. Arrays mit zirkulären Referenzen lösen beim rekursiven Zählen eine Warnung aus.
Nutze COUNT_RECURSIVE nur, wenn das Mitzählen von Unter-Arrays als Elemente für deinen Anwendungsfall sinnvoll ist - es liefert keine reine Blattwert-Anzahl.
FAQ
Wie ermittelt man die Array-Länge in PHP?
Rufe count($array) auf, um die Anzahl der Elemente zu erhalten. Das funktioniert für indizierte Arrays, assoziative Arrays und Objekte, die Countable implementieren. Ein leeres Array ergibt 0.
Funktioniert count() auch bei assoziativen Arrays?
Ja. count() zählt Schlüssel, unabhängig davon, ob sie numerisch oder als String definiert sind. count(["a" => 1, "b" => 2]) gibt 2 zurück.
Was passiert, wenn man in PHP 8 einen nicht-zählbaren Wert an count() übergibt?
PHP 8.0+ wirft bei nicht zählbaren Werten wie Strings, Integers, null oder normalen Objekten einen TypeError. In PHP 7.2+ gab es stattdessen eine Warnung und den Rückgabewert 1 für Skalare (und 0 für null), wodurch Bugs leicht verborgen blieben.