Heim  >  Artikel  >  Backend-Entwicklung  >  So löschen Sie Nullwerte im PHP-Array

So löschen Sie Nullwerte im PHP-Array

PHPz
PHPzOriginal
2023-04-26 10:24:57849Durchsuche

In der PHP-Entwicklung müssen wir häufig Array-Daten verarbeiten, und das Löschen von Nullwerten ist eine häufige Aufgabe. Ein Nullwert kann sich auf eine leere Zeichenfolge, einen Nullwert oder einen undefinierten Wert beziehen. In diesem Artikel erfahren Sie, wie Sie mithilfe von PHP-Funktionen Nullwerte aus einem Array löschen.

1. PHP-Funktion array_filter()

PHP stellt eine array_filter()-Funktion bereit, die ein Array filtern und ein neues gefiltertes Array zurückgeben kann. Sie können eine Rückruffunktion übergeben, um zu bestimmen, welche Werte beibehalten werden.

Wenn Sie die Funktion array_filter() verwenden, um leere Werte in einem Array zu löschen, müssen Sie die folgenden zwei Punkte beachten:

  1. Übergeben Sie eine Rückruffunktion: Da die Filterbedingungen unterschiedlich sind, müssen wir eine übergeben Rückruffunktion, um zu bestimmen, ob das aktuelle Array-Element ein Nullwert ist. Die Rückruffunktion kann angepasst werden, um durch Beurteilung des Elements zu bestimmen, ob jedes Array-Element beibehalten werden soll. Das Folgende ist ein Beispielcode, der eine benutzerdefinierte Rückruffunktion verwendet, um leere Werte im Array zu löschen:
function removeEmptyValues($value) {
    return !empty($value) || $value === 0;
}

$array = array("", "test", null, " ", 0, "0");
$result = array_filter($array, "removeEmptyValues");

print_r($result);

Das Ausgabeergebnis ist:

Array
(
    [1] => test
    [3] =>  
    [4] => 0
    [5] => 0
)

Die Funktion „removeEmptyValues()“ bestimmt hier, ob das Array-Element eine leere Zeichenfolge ist. Nullwert oder 0 Bestimmt, ob das Element beibehalten werden soll. Beachten Sie, dass Sie === anstelle von == verwenden müssen, um 0 und die leere Zeichenfolge genau zu vergleichen.

  1. Übergabe von Array-Schlüsselnamen: Wenn Sie die Funktion array_filter() verwenden, um leere Werte im Array zu löschen, indiziert die Funktion standardmäßig das neue Array neu, was bedeutet, dass die Schlüsselnamen im ursprünglichen Array möglicherweise vorhanden sind gelöscht. Wenn Sie den Schlüsselnamen des ursprünglichen Arrays beibehalten möchten, sollten Sie den Array-Schlüsselnamen wie unten gezeigt an die Rückruffunktion übergeben:
function removeEmptyValues($key, $value) {
    return !empty($value) || $value === 0;
}

$array = array("name" => "", "age" => null, "sex" => "male");
$result = array_filter($array, "removeEmptyValues", ARRAY_FILTER_USE_BOTH);

print_r($result);

Das Ausgabeergebnis lautet:

Array
(
    [sex] => male
)

In der Rückruffunktion haben wir zwei Parameter übergeben $key und $value, $key repräsentiert den Schlüsselnamen des aktuellen Array-Elements, $value repräsentiert den Wert des Array-Elements. In diesem Fall müssen wir den dritten Parameter ARRAY_FILTER_USE_BOTH hinzufügen, was bedeutet, dass die Rückruffunktion verwendet wird, um den Schlüsselnamen und den Schlüsselwert zu übergeben.

2. Verwenden Sie foreach()

Zusätzlich zur Funktion array_filter() können wir auch die foreach()-Schleife verwenden, um Nullwerte im Array zu löschen. Diese Methode durchläuft die Array-Elemente nacheinander, um die Nullwerte zu löschen. Der folgende Code zeigt, wie man mit foreach() Nullwerte in einem Array löscht:

$array = array("", "test", null, " ", 0, "0");
$result = array();

foreach ($array as $value) {
    if (!empty($value) || $value === 0) {
        $result[] = $value;
    }
}
print_r($result);

Das Ausgabeergebnis ist:

Array
(
    [0] => test
    [1] =>  
    [2] => 0
    [3] => 0
)

Diese Methode durchläuft die Array-Elemente und verwendet eine if-Anweisung, um zu bestimmen, ob das Element ist null, und wenn es nicht ist null Die Werte werden dem neuen Array hinzugefügt.

3. Verwenden Sie die Funktion array_map()

PHP bietet auch eine weitere Funktion array_map(), die die angegebene Rückruffunktion auf jedes Element im Array anwenden und ein neues Array zurückgeben kann. Wir können Nullwerte aus dem Array löschen, indem wir eine Rückruffunktion übergeben. Das Folgende ist ein Beispielcode, der die Funktion array_map() verwendet, um Array-Nullwerte zu löschen:

function removeEmptyValues($value) {
    return !empty($value) || $value === 0;
}

$array = array("", "test", null, " ", 0, "0");
$result = array_map("removeEmptyValues", $array);

print_r($result);

Das Ausgabeergebnis ist:

Array
(
    [0] => 
    [1] => test
    [2] => 
    [3] =>  
    [4] => 
    [5] => 0
)

Beachten Sie, dass bei Verwendung der Funktion array_map() zum Löschen von Array-Nullwerten die Indexschlüsselnamen in Das ursprüngliche Array wird nicht beibehalten, daher bleibt nur der Wert des Elements im Ausgabeergebnis erhalten.

Zusammenfassung

In der PHP-Entwicklung müssen wir häufig Nullwerte in Arrays löschen. In diesem Artikel werden drei gängige Methoden vorgestellt: die Verwendung von array_filter(), der foreach()-Schleife und der Funktion array_map(). Unter diesen ist die Funktion array_filter() die am häufigsten verwendete der drei Methoden, und die Rückruffunktion kann an unterschiedliche Anforderungen angepasst werden. Wenn Sie die Schlüsselnamen des ursprünglichen Arrays beibehalten müssen, können Sie den dritten Parameter von array_filter() oder eine benutzerdefinierte Rückruffunktion verwenden und den Schlüsselnamen und den Schlüsselwert als zwei Parameter übergeben. Wenn Sie die Schlüsselnamen und Indizes des ursprünglichen Arrays beibehalten müssen, können Sie mit foreach() das Array durchlaufen und nacheinander feststellen, ob die Elemente null sind. Wenn Sie die Funktion array_map() zum Löschen von Nullwerten verwenden, beachten Sie, dass die Indexschlüsselnamen des Ausgabearrays möglicherweise zurückgesetzt werden. Wenn Sie also die Schlüsselnamen des ursprünglichen Arrays beibehalten müssen, müssen Sie dies separat behandeln.

Das obige ist der detaillierte Inhalt vonSo löschen Sie Nullwerte im PHP-Array. 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