Heim  >  Artikel  >  Backend-Entwicklung  >  So löschen Sie mehrere Array-Elemente in PHP

So löschen Sie mehrere Array-Elemente in PHP

PHPz
PHPzOriginal
2023-04-19 09:18:36664Durchsuche

Das Löschen von Array-Elementen ist eine häufige Aufgabe in PHP. Normalerweise müssen wir nur ein Array-Element löschen und können zum Betrieb die Funktion unset () verwenden. Wenn Sie jedoch mehrere Array-Elemente löschen möchten, benötigen Sie etwas anderes.

In diesem Artikel erfahren Sie, wie Sie mehrere Array-Elemente mit verschiedenen Methoden löschen.

Methode 1: Unset- und foreach-Schleife verwenden

Dies ist eine der gebräuchlichsten Methoden. Sie können eine foreach-Schleife verwenden, um alle zu löschenden Array-Schlüsselwerte zu durchlaufen und sie mit der Funktion unset() zu löschen.

Zum Beispiel:

$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon');

$keysToDelete = array(1, 3, 5);

foreach($keysToDelete as $key){
    unset($myArray[$key]);
}

print_r($myArray);

Ausgabeergebnis:

Array
(
    [0] => apple
    [2] => orange
    [4] => kiwi
)

Methode 2: Verwenden Sie die Funktion array_diff_key()

array_diff_key(), um die Schlüsselwerte zweier Arrays zu vergleichen und ein Array aus Sätzen mit unterschiedlichen Schlüsselwerten zurückzugeben.

Wir können das ursprüngliche Array mit einem Array vergleichen, das nur die zu löschenden Schlüsselwerte enthält, und dann mit dem zurückgegebenen Ergebnis ein neues Array erstellen.

Zum Beispiel:

$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon');

$keysToDelete = array(1, 3, 5);

$newArray = array_diff_key($myArray, array_flip($keysToDelete));

print_r($newArray);

Ausgabeergebnis:

Array
(
    [0] => apple
    [2] => orange
    [4] => kiwi
)

In diesem Beispiel verwenden wir die Funktion array_flip(), um die Schlüsselwerte im Array $keysToDelete in Schlüsselnamen umzuwandeln, da die Funktion array_diff_key() ein Array erfordert enthält Schlüsselnamen.

Methode 3: Verwenden Sie array_filter(). Die Funktion array_filter() wird zum Filtern von Elementen im Array verwendet. Damit können wir die zu löschenden Schlüsselwerte herausfiltern und ein neues Array erstellen.

Zum Beispiel:

$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon');

$keysToDelete = array(1, 3, 5);

$newArray = array_filter($myArray, function($key) use ($keysToDelete){
    return !in_array($key, $keysToDelete);
}, ARRAY_FILTER_USE_KEY);

print_r($newArray);

Ausgabeergebnis:

Array
(
    [0] => apple
    [2] => orange
    [4] => kiwi
)

In diesem Beispiel verwenden wir eine anonyme Funktion als zweiten Parameter von array_filter(), die die Elemente mit einem Rückgabewert von true im Array behält, andernfalls bleiben sie bestehen herausfiltern. Wir verwenden die Funktion in_array(), um zu prüfen, ob der Schlüsselwert des Elements im zu löschenden Array enthalten ist. Wenn nicht, wird true zurückgegeben.

Fazit

In PHP gibt es viele Möglichkeiten, mehrere Array-Elemente zu löschen, und wir können entsprechend der tatsächlichen Situation auswählen, welche Methode verwendet werden soll. In diesem Artikel werden drei gängige Methoden vorgestellt: die Verwendung von unset- und foreach-Schleifen, die Verwendung der Funktion array_diff_key() und die Verwendung der Funktion array_filter().

Diese Methoden können das Problem des Löschens mehrerer Array-Elemente gut lösen. Bitte beachten Sie jedoch, dass die Verwendung der Funktion unset() dazu führen kann, dass die Array-Schlüssel neu angeordnet werden. Wenn Sie die Reihenfolge der Schlüssel beibehalten müssen, müssen Sie andere Methoden verwenden.

Das obige ist der detaillierte Inhalt vonSo löschen Sie mehrere Array-Elemente 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