Heim  >  Artikel  >  Backend-Entwicklung  >  Wie entferne ich Nullwerte aus einem Array in PHP? 4 Methoden vorgestellt

Wie entferne ich Nullwerte aus einem Array in PHP? 4 Methoden vorgestellt

PHPz
PHPzOriginal
2023-03-24 17:12:184758Durchsuche

In PHP stellt sich häufig die Frage, wie man Nullwerte aus einem Array entfernt. Dieses Problem betrifft insbesondere Webanwendungen, da vom Benutzer eingegebene Formulardaten manchmal Nullwerte enthalten können. In diesem Artikel erklären wir, wie man mit verschiedenen Methoden Nullwerte aus PHP-Arrays entfernt und geben die Vor- und Nachteile jeder Methode an.

Methode 1: Verwenden Sie die Funktion array_filter

Die in PHP integrierte Funktion array_filter kann Elemente im Array filtern und Filterbedingungen definieren, z. B. die Beibehaltung nur von Nicht-Null-Werten. Hier ist ein einfacher Beispielcode:

$arr = array('a', 'b', null, 'c', '', 'd');
$arr = array_filter($arr);
print_r($arr);

Die Ausgabe lautet:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)

array_filter Der Vorteil der Funktion besteht darin, dass sie sehr prägnant und leicht verständlich ist und das Problem schnell lösen kann. Der Nachteil besteht jedoch darin, dass der Index des gefilterten Werts geändert werden kann.

Methode 2: Verwenden Sie eine foreach-Schleife

Eine andere gängige Methode besteht darin, eine foreach-Schleife zu verwenden, um das gesamte Array zu durchlaufen und jeden Wert bei jeder Iteration zu überprüfen. Wenn das Element leer ist, entfernen Sie es mit der unset-Funktion in PHP.

Hier ist der Beispielcode:

$arr = array('a', 'b', null, 'c', '', 'd');
foreach ($arr as $key => $value) {
    if (empty($value)) {
        unset($arr[$key]);
    }
}
print_r($arr);

Die Ausgabe lautet wie folgt:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)

Der Vorteil dieser Methode besteht darin, dass sie den Index des Elements nicht ändert, da sie das Element anhand des Schlüsselnamens löscht. Der Nachteil besteht darin, dass die Unset-Funktion verwendet werden muss und der Code relativ komplex ist.

Methode 3: Verwenden Sie die Funktion array_diff

Eine weitere relativ einfache Methode ist die Verwendung der Array-Differenzfunktion array_diff in PHP. Wir können array_diff mit zwei identischen Arrays verwenden, von denen eines alle Werte und das andere Nullwerte enthält. Dadurch wird die Differenz zurückgegeben, bei der es sich um einen Wert ungleich Null handelt.

Hier ist der Beispielcode:

$arr = array('a', 'b', null, 'c', '', 'd');
$arr2 = array('');
$arr = array_diff($arr, $arr2);
print_r($arr);

Die Ausgabe lautet wie folgt:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)

Der Vorteil dieser Methode besteht darin, dass sie einfach und klar ist und keine Schleifen und nicht gesetzten Funktionen erfordert. Der Nachteil besteht darin, dass ein zu großes Array mit Nullwerten die Leistung beeinträchtigen kann.

Methode 4: Verwenden Sie eine benutzerdefinierte Funktion

Die letzte Methode besteht darin, eine von Ihnen selbst geschriebene Funktion zu verwenden, um das Array zu durchlaufen und Nullwerte zu löschen. Hier ist ein Beispielcode, der diese Methode verwendet:

function removeEmpty($arr) {
    foreach ($arr as $key => $value) {
        if (is_array($value)) {
            $arr[$key] = removeEmpty($value);
        } else {
            if(empty($value)) {
                unset($arr[$key]);
            }
        }
    }
    return $arr;
}
$arr = array('a', 'b', null, 'c', '', 'd');
$arr = removeEmpty($arr);
print_r($arr);

Die Ausgabe lautet wie folgt:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)

Der Vorteil dieser Methode besteht darin, dass sie mehrdimensionale Arrays verarbeiten kann und die Filterfunktion vollständig angepasst werden kann. Der Nachteil besteht jedoch darin, dass es nicht so intuitiv und leicht verständlich ist wie einfache integrierte Funktionen.

Fazit

In PHP haben wir mehrere Möglichkeiten, Nullwerte aus einem Array zu entfernen. Verschiedene Methoden haben ihre eigenen Vor- und Nachteile. Die Funktion array_filter ist die einfachste Möglichkeit, ändert jedoch den Index des Arrays. Die Verwendung einer foreach-Schleife zum Überprüfen und Entfernen aller Elemente erfordert relativ komplexen Code. Die Funktion array_diff kann sich auf die Leistung auswirken, während benutzerdefinierte Funktionen mehrdimensionale Arrays verarbeiten können, aber entsprechend mehr Code erfordern. Letztendlich kann je nach Anwendungsszenario die am besten geeignete Methode ausgewählt werden.

Das obige ist der detaillierte Inhalt vonWie entferne ich Nullwerte aus einem Array in PHP? 4 Methoden vorgestellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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