Heim  >  Artikel  >  Backend-Entwicklung  >  So entfernen Sie Nullwerte aus einem Array in PHP

So entfernen Sie Nullwerte aus einem Array in PHP

PHPz
PHPzOriginal
2023-05-11 10:49:37506Durchsuche

Bei der Entwicklung von PHP müssen wir häufig Arrays verarbeiten. Bei der Verarbeitung von Arrays müssen wir häufig Nullwerte im Array entfernen, um das Array sauberer und ordentlicher zu machen.

Nullwerte im Array haben keinen Einfluss auf die Verwendung des Arrays, können aber dazu führen, dass das Array verwirrend aussieht und manchmal das Programm belasten. Daher müssen wir das Array über PHP-Funktionen verarbeiten, um Nullwerte zu entfernen.

PHP bietet eine Vielzahl von Methoden zum Entfernen von Nullwerten in einem Array. Die am häufigsten verwendete Methode ist die Verwendung der Funktion array_filter(). Lassen Sie uns die Verwendung dieser Funktion im Detail vorstellen.

  1. Grundlegende Verwendung

Die Funktion array_filter() ist eine Funktion in PHP, die zum Filtern unerwünschter Werte in einem Array verwendet wird. Die grundlegende Syntax dieser Funktion lautet wie folgt:

array array_filter (array $array [, callback $callback [, int $flag = 0 ]])

Unter diesen bezieht sich $array auf das zu filternde Array und $callback ist ein optionaler Parameter, der die anzuwendende Callback-Funktion angibt (falls nicht angegeben, werden alle Elemente mit dem Der äquivalente Wert von „false“ wird entfernt). $flag ist immer noch ein optionaler Parameter. Wenn er auf PHP_ARRAY_FILTER_USE_BOTH gesetzt ist, werden sowohl der Wert als auch der Schlüssel überprüft, um festzustellen, ob sie leer sind.

Sehen Sie sich unten ein Beispiel an:

<?php
   $arr = array("a", "b", "", "c", "", "d");
   print_r(array_filter($arr));
?>

Ausgabeergebnis:

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

Im Code hier definieren wir ein Array $arr, das zwei leere Elemente „“ enthält, nachdem wir die Funktion array_filter() verwendet haben, um die leeren Elemente herauszufiltern , werden nur nicht leere Elemente beibehalten, nämlich [a, b, c, d].

  1. Verarbeitung assoziativer Arrays

Gleichzeitig können wir auch assoziative Arrays filtern. Filterfunktionen werden auf Werte angewendet, sodass nur Schlüssel-Wert-Paare beibehalten werden, die den Filterkriterien entsprechen.

Sehen Sie sich unten ein Beispiel an:

<?php
   $arr = array(
      "a" => 1,
      "b" => 2,
      "c" => "",
      "d" => 3,
      "e" => "",
      "f" => 4
   );
   print_r(array_filter($arr));
?>

Ausgabeergebnis:

Array
(
    [a] => 1
    [b] => 2
    [d] => 3
    [f] => 4
)

Hier definieren wir ein assoziatives Array $arr. Wir können sehen, dass nach dem Filtern nur die Schlüssel (a, b, d, f) vorhanden sind.

  1. Verwenden Sie eine benutzerdefinierte Rückruffunktion

Wenn Sie Filterbedingungen anpassen möchten, können Sie dazu eine Rückruffunktion verwenden. Die Rückruffunktion empfängt den Wert eines einzelnen Elements im Array als Parameter und gibt einen booleschen Wert zurück, der angibt, ob der Wert beibehalten werden soll.

Sehen Sie sich unten ein Beispiel an:

<?php
   $arr = array("apple", "banana", "cherry", "donut", "elderberry");
   print_r(array_filter($arr, function($var) {
      return (strlen($var) > 4);
   }));
?>

Ausgabeergebnis:

Array
(
    [2] => cherry
    [3] => donut
    [4] => elderberry
)

Hier definieren wir eine Rückruffunktion, die anhand der Länge des Elements bestimmt, ob beibehalten werden soll. Filtern Sie Elemente heraus, deren Länge kleiner oder gleich 4 ist, und das endgültige Ausgabeergebnis ist [Kirsche, Donut, Holunder].

  1. Für mehrdimensionale Arrays

Die oben vorgestellten Methoden sind alle auf eindimensionale Arrays anwendbar. Wenn Sie mehrdimensionale Arrays filtern möchten, wie sollten Sie das tun?

Wir können eine rekursive Funktion verwenden, um mehrdimensionale Arrays zu verarbeiten, wie unten gezeigt:

<?php
   $arr = array(
      0 => 'some data',
      1 => '',
      2 => array(
         0 => 'more data',
         1 => '',
         2 => array(
            0 => 'even more data',
            1 => '',
         ),
      ),
   );
   function removeEmptyValues(&$array) {
      foreach($array as $key => &$value) {
         if(is_array($value)) {
            removeEmptyValues($value);
            if(count($value) == 0) {
               unset($array[$key]);
            }
         }
         else if(empty($value)) {
            unset($array[$key]);
         }
      }
      unset($value);
   }
   removeEmptyValues($arr);
   print_r($arr);
?>

Ausgabeergebnis:

Array
(
    [0] => some data
    [2] => Array
        (
            [0] => more data
            [2] => Array
                (
                    [0] => even more data
                )
        )
)

Hier definieren wir eine rekursive Funktion „removeEmptyValues()“, um das mehrdimensionale Array zu durchlaufen und die darin enthaltenen Elemente zu verarbeiten . Nullwerte automatisch entfernen.

Zusammenfassung

Arrays sind in der PHP-Entwicklung sehr verbreitet, aber manchmal kann das Array eine große Anzahl von Nullwerten enthalten, die viel Speicherplatz beanspruchen und die Leistung des Programms beeinträchtigen. Zu diesem Zeitpunkt können wir den array_filter verwenden ()-Funktion zum Entfernen der NULL-Werte macht Arrays sauberer und effizienter. Es ist zu beachten, dass wir beim Umgang mit mehrdimensionalen Arrays rekursive Funktionen verwenden müssen.

Natürlich ist dies nur eine einfache Lösung, die nicht in allen Situationen funktioniert. Wenn Sie eine bessere Methode haben, teilen Sie sie bitte mit.

Das obige ist der detaillierte Inhalt vonSo entfernen Sie Nullwerte aus einem Array in PHP. 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