Heim >Backend-Entwicklung >PHP-Problem >PHP leeres Array entfernen
Bei der PHP-Entwicklung stoßen wir häufig auf Situationen, in denen wir leere Arrays entfernen müssen. Denn ein leeres Array belegt Systemressourcen und erhöht die Programmkomplexität sowie die laufenden Kosten. Daher ist das korrekte Entfernen leerer Arrays für die PHP-Entwicklung sehr wichtig.
Lassen Sie uns verschiedene Methoden zum Entfernen leerer Arrays in PHP vorstellen.
Methode 1: Verwenden Sie die Funktion array_filter
PHP stellt die Funktion array_filter zur Verfügung, mit der leere Arrays einfach entfernt werden können. Die grundlegende Syntax der Funktion
array_filter lautet wie folgt:
array array_filter ( array $array [, callable $callback [, int $flag ]] )
wobei $array das Eingabearray ist, $callback ein optionaler Parameter ist, der die Rückruffunktion angibt, und $flag ein optionaler Parameter ist, der zusätzliche Flags angibt. Die Rückruffunktion muss einen booleschen Wert zurückgeben, um zu bestimmen, ob jedes Element des Arrays beibehalten werden soll.
Das folgende Beispiel zeigt, wie Sie mit der Funktion array_filter leere Arrays entfernen:
$data = array('foo', false, -1, null, 0, '', 'bar'); $result = array_filter($data, function($item) { return !empty($item); }); print_r($result);
Die Ausgabe des obigen Codes lautet:
array ( 0 => 'foo', 2 => -1, 6 => 'bar', )
Durch die Verwendung der Funktion array_filter und der Callback-Funktion können wir die leeren Werte entfernen im Array und behalten Sie nur die gültigen Werte bei.
Methode 2: Foreach-Schleife verwenden
Wenn Sie die Funktion array_filter nicht verwenden möchten, können Sie auch die foreach-Schleife verwenden, um leere Arrays zu entfernen. Tatsächlich ist das Prinzip auch sehr einfach. Wir durchlaufen jedes Element des Arrays, bestimmen, ob das Element leer ist, und speichern dann den gültigen Wert in einem neuen Array.
Das folgende Beispiel zeigt, wie die foreach-Schleife zum Entfernen leerer Arrays verwendet wird:
$data = array('foo', false, -1, null, 0, '', 'bar'); $result = array(); foreach ($data as $item) { if (!empty($item)) { $result[] = $item; } } print_r($result);
Die Ausgabe des obigen Codes lautet:
array ( 0 => 'foo', 2 => -1, 6 => 'bar', )
Durch die Verwendung der foreach-Schleife und der Beurteilungsbedingungen können wir die gleichen Ergebnisse wie mit der Funktion array_filter erzielen , indem die Elemente im Array NULL-Werte entfernt werden, bleiben nur gültige Werte erhalten.
Methode 3: Verwenden Sie die Funktion array_reduce
Zusätzlich zu den Schleifen array_filter und foreach stellt PHP auch die Funktion array_reduce zur Berechnung aller Werte im Array bereit. Wir können die Funktion array_reduce verwenden, um leere Arrays zu entfernen. Die grundlegende Syntax der Funktion
array_reduce lautet wie folgt:
mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
wobei $array das Array ist, das verarbeitet werden muss, $callback die Rückruffunktion und $initial ein optionaler Parameter ist, der den Anfangswert des Rückrufs angibt Funktion.
Das folgende Beispiel zeigt, wie die Funktion array_reduce verwendet wird, um leere Arrays zu entfernen:
$data = array('foo', false, -1, null, 0, '', 'bar'); $result = array_reduce($data, function($accumulator, $item) { if (!empty($item)) { $accumulator[] = $item; } return $accumulator; }, array()); print_r($result);
Die Ausgabe des obigen Codes lautet:
array ( 0 => 'foo', 1 => -1, 2 => 'bar', )
Durch die Verwendung der Funktion array_reduce und der Callback-Funktion können wir die leeren Werte entfernen im Array und behalten Sie nur die gültigen Werte bei.
Methode 4: Verwenden Sie die Funktion array_diff.
Die Funktion array_diff ist eine weitere Array-Verarbeitungsfunktion von PHP. Ihre Funktion besteht darin, Werte zurückzugeben, die sich in einem Array, aber nicht in anderen Arrays befinden.
Das folgende Beispiel zeigt, wie Sie mit der Funktion array_diff leere Arrays entfernen:
$data = array('foo', false, -1, null, 0, '', 'bar'); $result = array_diff($data, array(null, '', false, 0)); print_r($result);
Die Ausgabe des obigen Codes lautet:
array ( 0 => 'foo', 2 => -1, 6 => 'bar', )
Mit der Funktion array_diff können wir die leeren Werte im Array entfernen und behalten Sie nur die gültigen Werte bei. Es ist zu beachten, dass das Array, das als zweiter Parameter an die Funktion array_diff übergeben wird, alle möglichen Nullwerte enthalten muss.
Fazit
Mit den oben genannten Methoden können wir problemlos Nullwerte in PHP-Arrays entfernen und nur gültige Werte beibehalten. In der tatsächlichen Entwicklung müssen wir basierend auf der tatsächlichen Situation auswählen, welche Methode verwendet werden soll. Wenn Sie nur Nullwerte entfernen müssen, empfiehlt es sich, die Funktion array_filter oder die foreach-Schleife zu verwenden. Wenn Sie andere Werte im Array berechnen müssen, sollten Sie die Verwendung der Funktion array_reduce in Betracht ziehen. Gleichzeitig müssen Sie bei Verwendung der Funktion array_diff beachten, dass der zweite Parameter alle möglichen Nullwerte enthalten muss.
Das obige ist der detaillierte Inhalt vonPHP leeres Array entfernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!