Es gibt viele Möglichkeiten, Elemente aus einem Array in PHP zu löschen. Einige gängige Methoden sind unten aufgeführt.

Ein Element aus einem Array löschen

Wenn Sie ein Element aus einem Array löschen möchten, können Sie unset() oderarray_splice()-Methode verwenden.

Wenn Sie den Wert des Array-Elements kennen, aber nicht den Schlüssel, können Siearray_search()verwenden, um den Schlüssel zu erhalten.

unset()-Methode

Beachten Sie, dass die Verwendung der unset()-Methode die anderen Schlüssel nicht ändert. Wenn Sie die anderen Schlüssel neu anordnen und sortieren möchten, können Siearray_values() verwenden.。

<?php
$array = array(0 => "a", 1 => "b", 2 => "c");
unset($array[1]);
           //↑ 你要删除的数组元素值的键
print_r($array);
?>

Ausgabeergebnis:

Array (
    [0] => a
    [2] => c
)

array_splice()-Methode

Wenn Sie diearray_splice()-Methode verwenden, werden die Array-Schlüssel automatisch neu indiziert, aber sie funktioniert nicht bei assoziativen Arrays. Sie müssenarray_values() verwendenum die Schlüssel in numerische Schlüssel umzuwandeln.

<?php
$array = array(0 => "a", 1 => "b", 2 => "c");
array_splice($array, 1, 1);
                   //↑ Offset which you want to delete
print_r($array);
?>

Ausgabeergebnis:

Array
(
    [0] => a
    [1] => c
)

array_splice()Sie hat die gleiche Wirkung wie die Funktion unset() beim Freigeben eines bestimmten Elements eines Arrays.

Mehrere Elemente aus einem Array löschen

Wenn Sie mehrere Elemente aus einem Array löschen möchten, können Sie nicht unset() oder diearray_splice()-Funktion verwenden. Sie müssenarray_diff() verwendenoder diearray_diff_key()-Methode. Um diese Methode zu verwenden, müssen Sie den zu löschenden Schlüssel oder Wert kennen.

array_diff()-Methode

Wenn Sie die zu löschenden Array-Elemente kennen, können Sie array_diff() verwenden.

<?php
$array = array(0 => "a", 1 => "b", 2 => "c");
$array = array_diff($array, ["a", "c"]);
                          //└────────┘→你要删除的元素
print_r($array );
?>

Das Ausgabeergebnis ist:

Array
(
    [1] => b
)

array_diff_key()-Methode

Wenn Sie den Schlüssel des zu löschenden Array-Elements kennen, können Sie array_diff_key() verwenden. Sie müssen den zu löschenden Schlüssel an der Schlüssel-Wert-Position des zweiten Parameters der Funktion eingeben; der Wert ist nicht erforderlich und kann beliebig sein.

<?php
$array = array(0 => "a", 1 => "b", 2 => "c");
$array = array_diff_key($array, [0 => "xy", "2" => "xy"]);
                               //↑           ↑ 你要删除的数组键
print_r($array);
?>

Das Ausgabeergebnis ist:

Array (
    [1] => b
)