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
)