Heim > Backend-Entwicklung > PHP-Problem > PHP leeres Array entfernen

PHP leeres Array entfernen

WBOY
Freigeben: 2023-05-23 10:20:07
Original
1454 Leute haben es durchsucht

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 ]] )
Nach dem Login kopieren

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);
Nach dem Login kopieren

Die Ausgabe des obigen Codes lautet:

array (
  0 => 'foo',
  2 => -1,
  6 => 'bar',
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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);
Nach dem Login kopieren

Die Ausgabe des obigen Codes lautet:

array (
  0 => 'foo',
  2 => -1,
  6 => 'bar',
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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 ] )
Nach dem Login kopieren

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);
Nach dem Login kopieren

Die Ausgabe des obigen Codes lautet:

array (
  0 => 'foo',
  1 => -1,
  2 => 'bar',
)
Nach dem Login kopieren

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);
Nach dem Login kopieren

Die Ausgabe des obigen Codes lautet:

array (
  0 => 'foo',
  2 => -1,
  6 => 'bar',
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage