Hay varias formas de eliminar elementos de un array en PHP; a continuación se enumeran algunas formas comunes.

Eliminar un elemento de un array

Si deseas eliminar un elemento de un array, puedes usar unset() oarray_splice()método.

Si conoces el valor (value) del elemento del array, pero no la clave (key), puedes usararray_search()para obtener la clave (key).

Método unset()

Ten en cuenta que si usas el método unset(), este no cambiará las otras claves (key). Si deseas reordenar las otras claves (key), puedes usararray_values()。

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

Resultado de salida:

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

Método array_splice()

Si usasarray_splice()método, las claves del array se reindexarán automáticamente, pero no funciona para arrays asociativos; es necesario usararray_values()para convertir las claves en claves numéricas.

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

Resultado de salida:

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

array_splice()Tiene el mismo efecto que la función unset() al liberar el elemento especificado del array.

Eliminar múltiples elementos de un array

Si deseas eliminar múltiples elementos de un array, no puedes usar unset() oarray_splice()función, necesitas usararray_diff()oarray_diff_key()método; usar este método requiere conocer la clave (key) o el valor (value) a eliminar.

Método array_diff()

Si conoces los elementos del array que deseas eliminar, puedes usar array_diff().

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

El resultado de salida es:

Array
(
    [1] => b
)

Método array_diff_key()

Si conoces la clave (key) del elemento del array que deseas eliminar, puedes usar array_diff_key(). Debes ingresar la clave a eliminar en la posición de clave del segundo parámetro de la función; el valor no es necesario, puede ser cualquiera.

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

El resultado de salida es:

Array (
    [1] => b
)