Cómo eliminar un elemento de un array en PHP

Minahil Noor 30 enero 2023
  1. Usando la función unset() para eliminar un elemento de un array en PHP
  2. Usando la función array_splice() para eliminar un elemento de un array en PHP
  3. Usando la función array_diff() para eliminar un elemento de un array en PHP
Cómo eliminar un elemento de un array en PHP

En este artículo, presentaremos métodos para eliminar un elemento de un array en PHP.

  • Uso de la función unset()
  • Usando la función array_splice()
  • Usando la función array_diff()

Usando la función unset() para eliminar un elemento de un array en PHP

La función incorporada unset() se usa para eliminar el valor almacenado en una variable. Solo es aplicable a las variables locales. No refleja su comportamiento en variables globales. Podemos usar esta función para eliminar un elemento de un array. La sintaxis correcta para usar esta función es la siguiente

unset($variableName);

Tiene un solo parámetro obligatorio. La variable cuyo valor deseamos eliminar se pasa como parámetro a esta función.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

unset($flowers[1]);
echo "The array is:\n";
print_r($flowers);
?>

Esta función puede eliminar un valor a la vez. El nombre del array junto con el índice del elemento ($flowers[1]) se pasa como parámetro. Esta función no cambia los valores del índice. Los valores del índice siguen siendo los mismos que antes.

Producción :

The array is:
Array
(
    [0] => Rose
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Tulip
    [5] => Sun Flower
    [6] => Daffodil
    [7] => Daisy
)

Como puede ver, falta el índice 1 después de aplicar la función unset.

Usando la función array_splice() para eliminar un elemento de un array en PHP

La función array_splice() se usa para agregar elementos a un array o eliminar elementos de un array. La sintaxis correcta para usar esta función es la siguiente

array_splice($arrayName, $startingIndex, $numOfElements, $array2Name);

Tiene cuatro parámetros.

  1. $arrayName es un parámetro obligatorio. Es la array cuyos elementos serán eliminados.
  2. $startingIndex es el índice del elemento que deseamos eliminar.
  3. $numOfElements es el número de elementos que queremos eliminar del índice inicial.
  4. $array2Name es un array de elementos que queremos agregar.

$numOfElements y $array2Name son opcionales.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

array_splice($flowers, 4, 3);
echo "The array is:\n";
print_r($flowers);
?>

La array $flowers se pasa como un parámetro a esta función junto con el índice inicial 4 y el número de elementos que queremos eliminar-3. De esta manera, podemos eliminar múltiples elementos de un array.

Producción :

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Daisy
)
Nota

A diferencia de unset, la función array_splice reindexará automáticamente las teclas.

Daisy tiene el nuevo índice como 4 pero no el índice original - 7, después de eliminar tres elementos anteriores.

Usando la función array_diff() para eliminar un elemento de un array en PHP

La función incorporada array_diff() encuentra la diferencia entre dos o más arrays. Se puede utilizar para eliminar múltiples valores de un array sin afectar sus índices. La sintaxis correcta para usar esta función es la siguiente

array_diff($array1, $array2, $array3, ... , $arrayN);

Toma N número de arrays como parámetros. Compara la primera array con todas las demás matrices y devuelve un array que contiene todos los elementos de la primera array que no están presentes en otras matrices.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

$flowers = array_diff($flowers, array("Rose","Lili"));
echo "The array is:\n";
print_r($flowers);
?>

Aquí, la primera array que hemos pasado es $flowers y la segunda array contiene los elementos que queremos eliminar de $flowers. Esta función no cambia los índices de los elementos del array.

Producción :

The array is:
Array
(
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Tulip
    [5] => Sun Flower
    [6] => Daffodil
    [7] => Daisy
)

Artículo relacionado - PHP Array