So entfernen Sie Nullwerte aus einem PHP-Array

PHPz
Freigeben: 2023-04-20 10:03:23
Original
842 Leute haben es durchsucht

Bei der PHP-Programmierung treten häufig Situationen auf, in denen Nullwerte in Arrays entfernt werden müssen. Diese Situation kann in Szenarien wie Datenbereinigung und Datenfilterung auftreten. Es gibt mehrere Möglichkeiten, dies in PHP zu erreichen, und wir werden diese im Folgenden im Detail zusammen mit ihren Vor- und Nachteilen besprechen.

Methode 1: Verwenden Sie die Funktion array_filter().

Die Funktion array_filter() kann ein neues Array zurückgeben, in dem Elemente herausgefiltert werden, die die Bedingungen der benutzerdefinierten Funktion nicht erfüllen. Wir können eine benutzerdefinierte Funktion erstellen, um zu bestimmen, ob ein Element null ist.

Der Beispielcode lautet wie folgt:

$array = array("foo", "", "bar", null, "baz");
$new_array = array_filter($array, function($item) {
    return !empty($item);
});
Nach dem Login kopieren

In diesem Beispiel enthält das Array $array leere Zeichenfolgen, Nullwerte und Nicht- Wenn wir leere Elemente verwenden, erhalten wir über die Funktion array_filter() ein neues Array, das keine Nullwerte enthält, nämlich $new_array. $array 数组中包含了空字符串、null 值和非空元素,通过 array_filter() 函数,我们得到了一个不包含空值的新数组,即 $new_array

需要注意的是, array_filter() 函数默认会去掉以下值:

  • "" (空字符串)
  • 0 (整数 0)
  • 0.0 (浮点数 0)
  • "0" (字符串 "0")
  • false (布尔值 false)
  • null

如果需要去掉其他值,可以通过自定义函数传递第二个参数进行过滤。

优点:array_filter() 函数使用简单,可以自定义过滤条件。

缺点:相比其他方法,此方法性能较差,中大型数组尤其如此。

方法二:使用 foreach 循环去除空值

此方法较为直接,可以通过 foreach 循环遍历数组,然后利用 PHP 的弱类型特性(空值会被自动转换成 false)来判断并去除空值。

示例代码如下:

$array = array("foo", "", "bar", null, "baz");
foreach($array as $key => $value) {
    if(!$value) {
        unset($array[$key]);
    }
}
Nach dem Login kopieren

该例中,我们遍历了 $array 数组,如果元素的值为 false,即被判定为空值,则使用 unset() 函数移除该元素。

优点:相对于 array_filter() 函数,此方法对于大规模数组性能更优。

缺点:需要手动添加条件判断,代码不够简洁。

方法三:使用 array_diff() 函数

array_diff() 函数用于计算数组的值的差集。我们可以使用它来移除空值。

示例代码如下:

$array = array("foo", "", "bar", null, "baz");
$new_array = array_diff($array, array("", null));
Nach dem Login kopieren

该例中,我们使用 array_diff() 函数计算 $array 数组和一个包含空字符串和 null 值的数组的差集,从而得到一个新数组 $new_array

Es ist zu beachten, dass die Funktion array_filter() standardmäßig die folgenden Werte entfernt:

  • "" (leerer String )
  • 0 (Ganzzahl 0)
  • 0.0 (Gleitkommazahl 0)
  • "0" (Zeichenfolge "0")
  • false (boolean false)
  • null
Wenn Sie andere Werte entfernen müssen, können Sie den zweiten Parameter zum Filtern über eine benutzerdefinierte Funktion übergeben.

Vorteile: Die Funktion array_filter() ist einfach zu verwenden und kann Filterbedingungen anpassen.

Nachteile: Im Vergleich zu anderen Methoden weist diese Methode eine schlechte Leistung auf, insbesondere bei mittleren und großen Arrays.

Methode 2: Verwenden Sie die foreach-Schleife, um Nullwerte zu entfernen.#🎜🎜##🎜🎜#Diese Methode ist direkter. Sie können das Array durch die foreach-Schleife durchlaufen und dann die schwache Typfunktion von PHP verwenden (Nullwerte werden automatisch in „falsch“ umgewandelt), um Nullwerte zu ermitteln und zu entfernen. #🎜🎜##🎜🎜#Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#In diesem Beispiel durchlaufen wir das Array $array, wenn der Wert des Elements falsch ist Wenn der Wert leer ist, verwenden Sie die Funktion unset(), um das Element zu entfernen. #🎜🎜##🎜🎜#Vorteile: Im Vergleich zur Funktion array_filter() bietet diese Methode eine bessere Leistung für große Arrays. #🎜🎜##🎜🎜#Nachteile: Die bedingte Beurteilung muss manuell hinzugefügt werden und der Code ist nicht präzise genug. #🎜🎜##🎜🎜#Methode 3: Verwenden Sie die Funktion array_diff() #🎜🎜##🎜🎜#array_diff() Die Funktion wird verwendet, um den Differenzsatz von Array-Werten zu berechnen. Damit können wir Nullwerte entfernen. #🎜🎜##🎜🎜#Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#In diesem Beispiel verwenden wir die Funktion array_diff(), um das $array zu berechnen Array-Summe Die Differenz zwischen einem Array, das eine leere Zeichenfolge enthält, und einem Nullwert, was zu einem neuen Array $new_array führt. Wir können sehen, dass diese Methode mehrere Werte gleichzeitig filtern kann. #🎜🎜##🎜🎜#Es ist zu beachten, dass diese Methode nur hartcodierte Nullwerte filtern und die Filterbedingungen nicht anpassen kann. #🎜🎜##🎜🎜#Vorteile: Der Code ist einfach und kann mehrere Werte gleichzeitig filtern. #🎜🎜##🎜🎜#Nachteile: Filterbedingungen können nicht angepasst werden. #🎜🎜##🎜🎜# Zusammenfassend empfehlen wir für große Arrays die Verwendung von Methode zwei; für kleine Arrays können Sie Methode eins oder Methode drei wählen. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo entfernen Sie Nullwerte aus einem PHP-Array. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!