Wie prüft man, ob ein Array in PHP leer ist? Fünf Methoden, die jeder Entwickler kennen sollte
\n\nHast du jemals ein PHP-Skript geschrieben, das ein Array verarbeiten soll, und plötzlich einen Fehler wie „Undefined offset“ oder „Trying to access array offset on null“ erhalten? Kommt dir bekannt vor, oder? Das Prüfen eines Arrays auf Leerheit ist eine dieser grundlegenden, aber kritischen Operationen, die viele Anfänger falsch machen. In diesem Artikel zeigen wir dir wie du in PHP ein Array auf Leerheit prüfst und beleuchten alle Nuancen: von der einfachen Verwendung von empty() bis zum Vergleich mit []. Mach dich bereit für deinen Lieblings-Editor – es wird praktisch!
Warum ist das wichtig? Eine wahre Geschichte aus dem Alltag
\n\nStell dir vor: Du entwickelst einen Online-Shop. Ein Kunde legt Artikel in den Warenkorb und gibt eine Bestellung auf. Dein Code muss prüfen, ob sich Artikel im Warenkorb befinden, bevor das Geld abgebucht wird. Wenn du das PHP-Array nicht korrekt auf Leerheit prüfst, buchst du entweder Geld für einen leeren Warenkorb ab (und bekommst einen wütenden Anruf) oder die Bestellung wird gar nicht verarbeitet. Genau deshalb hat die Frage „How to check whether an array is empty using PHP?“ tausende Aufrufe auf Stack Overflow. Lass uns das ein für alle Mal klären.
\n\nMethode 1: Die Funktion empty() – einfach und beliebt
\n\nDie Funktion empty() in PHP ist das Schweizer Taschenmesser für die Prüfung auf leere Werte. Sie gibt true zurück, wenn die Variable nicht existiert, gleich false, null, einem leeren String, 0 oder einem leeren Array ist. Für die Prüfung eines Arrays auf Leerheit ist das ideal.
<?php\n$leeresArray = [];\n$gefuelltesArray = ['Apfel', 'Banane'];\n\nif (empty($leeresArray)) {\n echo 'Das Array ist leer!'; // Ausgabe: Das Array ist leer!\n}\n\nif (!empty($gefuelltesArray)) {\n echo 'Das Array enthält Elemente: ' . implode(', ', $gefuelltesArray);\n // Ausgabe: Das Array enthält Elemente: Apfel, Banane\n}\n?>\n\nWichtig: empty() erzeugt keine Warnung, wenn die Variable nicht definiert ist. Das ist sicher und praktisch. Beachte jedoch: Enthält das Array ein Element mit dem Wert 0 oder einen leeren String '', betrachtet empty() das gesamte Array nicht als „leer“ – es prüft das Array selbst, nicht seine Elemente.
Methode 2: Die Funktion count() – präzise Elementanzahl
\n\nWenn du die genaue Anzahl der Elemente benötigst, verwende count(). Ein Array gilt als leer, wenn count($array) === 0 ist. Diese Methode ist besonders nützlich, wenn du nicht nur die Leerheit prüfen, sondern auch die Größe des Arrays ermitteln möchtest.
<?php\n$benutzer = ['Alice', 'Bob'];\n$leereBenutzer = [];\n\nif (count($leereBenutzer) === 0) {\n echo 'Die Benutzerliste ist leer.'; // Ausgabe: Die Benutzerliste ist leer.\n}\n\necho 'Anzahl der Benutzer: ' . count($benutzer); // Ausgabe: 2\n?>\n\nFeinheit: count() funktioniert auch bei einer nicht existierenden Variable, gibt aber eine Warnung aus: Warning: count(): Parameter must be an array or an object that implements Countable. Um Fehler zu vermeiden, kombiniere es mit isset() oder is_array().
Methode 3: Vergleich mit einem leeren Array (=== [])
\n\nManchmal ist der direkteste Weg der beste. Du kannst die Variable einfach mit einem leeren Array vergleichen, indem du den strikten Vergleich === verwendest. Das ist schnell und intuitiv.
<?php\n$daten = [];\n\nif ($daten === []) {\n echo 'Das Array daten ist leer.'; // Ausgabe: Das Array daten ist leer.\n}\n\n$konfig = ['debug' => true];\nif ($konfig !== []) {\n echo 'Die Konfiguration ist nicht leer.';\n}\n?>\n\nVorteile: Der Code liest sich wie normales Englisch. Nachteile: Wenn die Variable nicht definiert ist, erhältst du einen fatalen Fehler Undefined variable. Verwende diese Methode daher nur, wenn du sicher bist, dass die Variable existiert.