PHP entfernt leere Daten aus dem Array

WBOY
Freigeben: 2023-05-24 14:23:38
Original
439 Leute haben es durchsucht

Array ist in PHP ein sehr häufig verwendeter Datentyp, der zum Speichern einer Reihe von Daten verwendet werden kann. In der täglichen Entwicklung stoßen wir jedoch häufig auf Situationen, in denen wir leere Daten in einem Array entfernen müssen. In diesem Artikel erfahren Sie, wie Sie leere Daten in einem Array durch Schreiben von PHP-Code entfernen.

Um den Inhalt dieses Artikels besser zu verstehen, müssen wir zunächst verstehen, was ein Array und was leere Daten sind.

Ein Array kann als eine geordnete Sammlung von Werten verstanden werden, auf die jeweils über einen eindeutigen Bezeichner (Index) zugegriffen werden kann. In PHP können Arrays über die Funktion array() oder über die prägnante []-Syntax erstellt werden. Hier ist ein Beispiel für ein PHP-Array:

$array = array("apple", "orange", "banana", "");
Nach dem Login kopieren

Im obigen Beispiel haben wir ein Array mit vier Elementen erstellt, wobei das vierte Element ein leerer String ist.

Leere Daten beziehen sich auf Daten, deren Wert im Array Null, leere Zeichenfolge, leeres Array, falsch, 0 oder ein Objekt ohne Attribute ist. In PHP können Sie die Funktion empty() verwenden, um festzustellen, ob eine Variable leere Daten enthält.

Jetzt können wir offiziell damit beginnen, vorzustellen, wie leere Daten aus dem Array entfernt werden. Im Folgenden sind zwei häufig verwendete Methoden aufgeführt:

Methode 1

Verwenden Sie die in PHP integrierte array_filter()-Funktion. Diese Funktion kann das Element im Array an eine Rückruffunktion übergeben und anhand des Rückgabewerts der Rückruffunktion bestimmen, ob das Element beibehalten werden soll. Der folgende Code entfernt beispielsweise Elemente aus einem Array, deren Werte null, falsch, leere Zeichenfolge, leeres Array und 0 sind:

$array = array("apple", "", "orange", null, "banana", false, array(), 0);
$array = array_filter($array, function ($item) {
    if (is_array($item) && count($item) == 0) {
        return false; // 保留非空数组
    }
    return !empty($item); // 剔除空字符串、null、false、0
});
Nach dem Login kopieren

Im obigen Code erstellen wir zunächst ein Array, das Elemente verschiedener Typen enthält. Rufen Sie dann die Funktion array_filter() auf und übergeben Sie eine anonyme Funktion. In der anonymen Funktion verarbeiten wir die Elemente im Array und geben einen booleschen Wert zurück. Wenn dieser Wert wahr ist, bleibt das Element erhalten, andernfalls wird es entfernt.

Es ist zu beachten, dass wir in der anonymen Funktion eine spezielle Verarbeitung der Elemente im Array durchführen. Wenn der Wert eines Elements ein Array ist, müssen wir auch feststellen, ob es sich um ein leeres Array handelt, und es gegebenenfalls beibehalten. Dies liegt daran, dass ein leeres Array in PHP auch als Nullwert betrachtet wird.

Schließlich erhalten wir ein neues Array, das keine leeren Daten enthält. Das Folgende ist das Ergebnis der Verwendung der Funktion print_r() zur Ausgabe eines neuen Arrays:

Array
(
    [0] => apple
    [2] => orange
    [4] => banana
)
Nach dem Login kopieren
Nach dem Login kopieren

Sie können sehen, dass das neue Array im ursprünglichen Array nur nicht leere Elemente enthält.

Methode 2

Verwenden Sie eine Schleife, um das ursprüngliche Array zu durchlaufen und die leeren Daten darin zu löschen. Diese Methode ist relativ einfach, erfordert jedoch das manuelle Schreiben von Schleifencode. Der folgende Code verwendet beispielsweise eine foreach-Schleife, um ein Array zu durchlaufen und leere Daten daraus zu entfernen:

$array = array("apple", "", "orange", null, "banana", false, array(), 0);
foreach ($array as $key => $value) {
    if (is_array($value) && count($value) == 0) {
        unset($array[$key]); // 剔除空数组
    } elseif (empty($value)) {
        unset($array[$key]); // 剔除空字符串、null、false、0
    }
}
Nach dem Login kopieren

Im obigen Code erstellen wir zunächst ein Array, das Elemente verschiedener Typen enthält. Verwenden Sie dann eine foreach-Schleife, um das Array zu durchlaufen und zu prüfen, ob es sich bei jedem Element um leere Daten handelt. Wenn ja, verwenden Sie die Funktion unset(), um das Element zu entfernen.

Es ist zu beachten, dass wir beim Löschen von Array-Elementen die Funktion unset() verwenden, anstatt unset($array[$key]) direkt zu verwenden. Dies liegt daran, dass der Index des Arrays neu indiziert wird, wenn wir Elemente direkt mit unset($array[$key]) löschen, was zu unerwarteten Fehlern führen kann. Mit der Funktion unset() kann dieses Problem vermieden werden.

Schließlich erhalten wir auch ein neues Array, das keine leeren Daten enthält. Das Folgende ist das Ergebnis der Verwendung der Funktion print_r() zur Ausgabe eines neuen Arrays:

Array
(
    [0] => apple
    [2] => orange
    [4] => banana
)
Nach dem Login kopieren
Nach dem Login kopieren

Sie können sehen, dass das neue Array im ursprünglichen Array nur nicht leere Elemente enthält.

Zusammenfassend lässt sich sagen, dass Sie leere Daten in einem Array durch Schreiben von PHP-Code entfernen können. Unabhängig davon, ob Sie die Funktion array_filter() oder den Schleifendurchlauf verwenden, können Sie damit problemlos leere Daten aus dem Array entfernen und so unseren Code prägnanter und effizienter gestalten.

Das obige ist der detaillierte Inhalt vonPHP entfernt leere Daten aus dem 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!