In PHP ist Array eine sehr häufig verwendete Datenstruktur. In vielen Programmierszenarien müssen wir häufig Arrays verwenden. Wenn Sie ein Array verarbeiten, müssen Sie daher häufig überlegen, ob das Array leer ist und wie Sie die Länge des Arrays ermitteln.
PHP bietet viele Funktionen zum Verarbeiten von Arrays, z. B. die Funktion empty(), um zu bestimmen, ob das Array leer ist, die Funktion isset(), um zu bestimmen, ob das Array-Element vorhanden ist, und die Funktion count(), um die Länge des Arrays zu ermitteln , usw. Dieser Artikel konzentriert sich darauf, wie man die Länge eines Arrays ermittelt, das nicht leer ist.
Wenn wir die Funktion count() verwenden, um die Array-Länge zu ermitteln, wird 0 zurückgegeben, wenn das Array leer ist. In einigen Szenarien müssen Sie jedoch die Länge des Arrays ermitteln, das nicht leer ist. Was sollten Sie also tun?
Eine übliche Methode besteht darin, eine Schleife zu verwenden, um das Array zu durchlaufen und die Anzahl der Elemente zu zählen, die nicht leer sind. Die spezifische Implementierung lautet wie folgt:
function countNotNull($arr){ if(!is_array($arr)) return 0; $count = 0; foreach($arr as $item){ if(!empty($item)){ $count++; } } return $count; } $arr = array(1, null, 3, "", 5, array()); echo countNotNull($arr); // output: 3
Der obige Code ermittelt zunächst, ob das Array leer ist und ob es sich um einen Array-Typ handelt, um Fehler durch die Übergabe illegaler Parameter zu verhindern. Zählen Sie dann durch Durchlaufen jedes Elements die Anzahl der Elemente, die nicht leer sind. Geben Sie schließlich diesen Wert zurück.
Obwohl diese Methode relativ einfach ist, ist sie weniger effizient, wenn viele Array-Elemente vorhanden sind. Darüber hinaus kann es bei mehrfacher Verwendung dieser Funktion zu Doppelarbeit kommen.
Eine effizientere Lösung besteht darin, die Funktion array_filter() zu verwenden, um leere Elemente herauszufiltern, und dann die Funktion count() zu verwenden, um die Länge des Arrays zu ermitteln. Die spezifische Implementierung ist wie folgt:
function countNotNull2($arr){ if(!is_array($arr)) return 0; $newArr = array_filter($arr); return count($newArr); } $arr = array(1, null, 3, "", 5, array()); echo countNotNull2($arr); // output: 3
Der obige Code beurteilt zunächst die Rechtmäßigkeit der Parameter, verwendet dann die Funktion array_filter(), um leere Elemente herauszufiltern und gibt ein neues Array zurück. Verwenden Sie dann die Funktion count(), um die Länge des neuen Arrays zu ermitteln, also die Länge des Arrays, das nicht leer ist.
Es ist zu beachten, dass die Verwendung der Funktion array_filter() leere Elemente (wie 0, „“, null, false usw.) herausfiltert, anstatt nur leere Zeichenfolgen herauszufiltern.
Kurz gesagt, in PHP gibt es viele Möglichkeiten, die Länge eines Arrays zu ermitteln, das nicht leer ist. Die oben genannten sind nur die häufigsten. Der Leser kann je nach tatsächlichem Bedarf die geeignete Methode auswählen.
Das obige ist der detaillierte Inhalt vonSo erhalten Sie die Länge eines Arrays, das in PHP nicht leer ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!