Uso de la función unset() para eliminar elementos de un array
Eliminar un solo elemento con unset()
La función unset() en PHP elimina un elemento de un array por su clave. Para eliminar un solo elemento, pasa el array y la clave del elemento que quieres eliminar como argumentos a la función unset().
Aquí tienes un ejemplo que muestra cómo eliminar un solo elemento de un array usando unset():
$frutas = array("manzana", "plátano", "naranja", "uva");
unset($frutas[2]);
print_r($frutas);
En este ejemplo, tenemos un array llamado $frutas con cuatro elementos. Usamos la función unset() para eliminar el tercer elemento (índice 2) del array, que es "naranja". Después de eliminar el elemento, usamos print_r() para mostrar el array actualizado, que producirá:
Array
(
[0] => manzana
[1] => plátano
[3] => uva
)
Cuando se usa unset() para eliminar un elemento, los índices del array no se reindexan. Después de eliminar un elemento, el array puede tener huecos en sus índices.
Eliminar múltiples elementos con unset()
La función unset() también permite eliminar múltiples elementos de un array especificando múltiples claves. Pasa múltiples claves como argumentos separados a la función unset() para eliminar múltiples elementos en una sola declaración.
Aquí tienes un ejemplo que demuestra cómo eliminar múltiples elementos de un array usando unset():
$numeros = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
unset($numeros[3], $numeros[6], $numeros[8]);
print_r($numeros);
En este ejemplo, tenemos un array $numeros con diez elementos. Usamos la función unset() para eliminar el cuarto elemento (índice 3), el séptimo elemento (índice 6) y el noveno elemento (índice 8) del array. Después de eliminar los elementos, el array actualizado será:
Array
(
[0] => 1
[1] => 2
[2] => 3
[4] => 5
[5] => 6
[7] => 8
[9] => 10
)
La función unset() elimina los elementos especificados del array, dejando intactos los elementos restantes. Los índices del array no se reindexan automáticamente.
| Función | Descripción |
|---|---|
unset() |
Elimina un elemento de un array por su clave |
unset($array[clave]) |
Elimina un solo elemento de un array |
unset($array[clave1], $array[clave2], ...) |
Elimina múltiples elementos de un array |
Eliminar elementos de un array usando array_splice()
Eliminar elementos con array_splice()
La función array_splice() en PHP te permite eliminar elementos de un array especificando el índice de inicio y el número de elementos a eliminar. Esta función modifica el array original y devuelve los elementos eliminados como un nuevo array.
Aquí tienes un ejemplo que muestra cómo usar array_splice() para eliminar elementos de un array:
$frutas = array("manzana", "plátano", "naranja", "uva", "kiwi");
$frutas_eliminadas = array_splice($frutas, 2, 2);
print_r($frutas);
print_r($frutas_eliminadas);
En este ejemplo, tenemos un array $frutas con cinco elementos. Usamos array_splice() para eliminar dos elementos comenzando desde el índice 2 (el tercer elemento). El primer parámetro especifica el array, el segundo parámetro es el índice de inicio, y el tercer parámetro es el número de elementos a eliminar.
Después de usar array_splice(), el array $frutas contendrá los elementos restantes:
Array
(
[0] => manzana
[1] => plátano
[2] => kiwi
)
Los elementos eliminados se devuelven como un nuevo array, que se almacena en la variable $frutas_eliminadas:
Array
(
[0] => naranja
[1] => uva
)
Reindexar el array después de usar array_splice()
Es importante notar que array_splice() reindexaloa automáticamente el array después de eliminar elementos. Los elementos restantes se desplazan para llenar los huecos creados por los elementos eliminados, y los índices del array se actualizan.
Aquí tienes un ejemplo que muestra el comportamiento de reindexación de array_splice():
$numeros = array(5, 10, 15, 20, 25);
array_splice($numeros, 1, 3);
print_r($numeros);
En este ejemplo, eliminamos tres elementos comenzando desde el índice 1 (el segundo elemento) del array $numeros usando array_splice(). Después de eliminar los elementos, el array se reindexaloa:
Array
(
[0] => 5
[1] => 25
)
Los elementos restantes se desplazan para llenar los huecos, y los índices del array se actualizan.
Ejemplo
-
Gestionar una lista de tareas: Supongamos que tienes un array que representa una lista de tareas, y quieres eliminar las tareas completadas de la lista. Puedes usar
array_splice()para eliminar las tareas completadas especificando sus índices.$lista_tareas = array("Comprar víveres", "Terminar proyecto", "Llamar al cliente", "Asistir a reunión"); $tareas_completadas = array(1, 3); foreach ($tareas_completadas as $indice) { array_splice($lista_tareas, $indice, 1); } print_r($lista_tareas);Salida:
Array ( [0] => Comprar víveres [1] => Llamar al cliente ) -
Eliminar elementos duplicados: Si tienes un array con elementos duplicados y quieres eliminar los duplicados, puedes usar
array_splice()junto conarray_unique()para hacer esto.$numeros = array(1, 2, 3, 2, 4, 3, 5); $numeros_unicos = array_unique($numeros); $indices_duplicados = array_diff_key($numeros, $numeros_unicos); foreach ($indices_duplicados as $indice => $valor) { array_splice($numeros, $indice, 1); } print_r($numeros);Salida:
Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] => 5 )
| Función | Descripción |
|---|---|
array_splice() |
Elimina elementos de un array y los devuelve como un nuevo array |
array_splice($array, $inicio, $longitud) |
Elimina $longitud elementos de $array comenzando en el índice $inicio |
$elementos_eliminados = array_splice($array, $inicio, $longitud) |
Asigna los elementos eliminados a $elementos_eliminados |
Eliminar elementos de un array asociativo
Eliminar elementos de un array asociativo con unset()
En PHP, puedes eliminar elementos de un array asociativo usando la función unset() especificando la clave del elemento que quieres eliminar. La función unset() elimina el par clave-valor del array.
Aquí tienes un ejemplo que muestra cómo eliminar un elemento de un array asociativo usando unset():
$persona = array(
"nombre" => "Juan",
"edad" => 30,
"ciudad" => "Nueva York",
"país" => "EE.UU."
);
unset($persona["ciudad"]);
print_r($persona);
En este ejemplo, tenemos un array asociativo llamado $persona que representa la información de una persona. Cada par clave-valor en el array corresponde a un atributo específico de la persona.
Para eliminar el elemento "ciudad" del array $persona, usamos la función unset() y pasamos la variable del array seguida de la clave entre corchetes: unset($persona["ciudad"]). Esto elimina el par clave-valor donde la clave es "ciudad".
Después de eliminar el elemento, la función print_r() se usa para mostrar el array $persona actualizado:
Array
(
[nombre] => Juan
[edad] => 30
[país] => EE.UU.
)
Como puedes ver, el elemento "ciudad" ha sido eliminado del array, y los pares clave-valor restantes se mantienen.
Es importante notar que cuando eliminas un elemento de un array asociativo usando unset(), la estructura del array permanece igual. Las claves de los elementos restantes no cambian, y no se produce ninguna reindexación.
Puedes eliminar múltiples elementos de un array asociativo especificando múltiples claves en declaraciones unset() separadas:
unset($persona["edad"], $persona["país"]);
Esta declaración elimina tanto el elemento "edad" como el elemento "país" del array $persona.
Usar unset() es una forma sencilla de eliminar elementos de un array asociativo cuando conoces las claves específicas que quieres eliminar.
| Función | Descripción |
|---|---|
unset() |
Elimina un elemento de un array asociativo por su clave |
unset($array[clave]) |
Elimina el par clave-valor de $array donde se especifica la clave |
Ejemplo: Eliminar un producto de un carrito de compras
Supongamos que tienes un carrito de compras en línea implementado como un array asociativo, donde cada clave representa un ID de producto y el valor correspondiente representa la cantidad de ese producto en el carrito. Si un usuario decide eliminar un producto de su carrito, puedes usar unset() para eliminar el par clave-valor correspondiente.
$carrito = array(
"item1" => 2,
"item2" => 1,
"item3" => 3
);
unset($carrito["item2"]);
print_r($carrito);
Salida:
Array
(
[item1] => 2
[item3] => 3
)
En este ejemplo, el producto "item2" se elimina del array $carrito usando unset().
Ejemplo: Eliminar un usuario de una base de datos de usuarios
Considera un caso donde tienes una base de datos de usuarios almacenada como un array asociativo, con IDs de usuario como claves e información de usuario como valores. Si necesitas eliminar un usuariode la base de datos, puedes usar unset() para eliminar el par clave-valor correspondiente.
$baseDatosUsuarios = array(
"usuario1" => array("nombre" => "Juan", "email" => "juan@ejemplo.com"),
"usuario2" => array("nombre" => "Ana", "email" => "ana@ejemplo.com"),
"usuario3" => array("nombre" => "Roberto", "email" => "roberto@ejemplo.com")
);
unset($baseDatosUsuarios["usuario2"]);
print_r($baseDatosUsuarios);
Salida:
Array
(
[usuario1] => Array
(
[nombre] => Juan
[email] => juan@ejemplo.com
)
[usuario3] => Array
(
[nombre] => Roberto
[email] => roberto@ejemplo.com
)
)
En este ejemplo, el usuario con el ID "usuario2" se elimina del array $baseDatosUsuarios usando unset().
Usar array_diff() para eliminar elementos de un array
Crear un nuevo array sin elementos específicos
La función array_diff() de PHP crea un nuevo array que contiene todos los elementos del primer array que no están presentes en ninguno de los otros arrays pasados como parámetros. Esta función puede eliminar elementos de un array creando un nuevo array sin los elementos especificados.
Aquí tienes un ejemplo que muestra cómo usar array_diff() para eliminar elementos de un array:
$array_original = array("manzana", "plátano", "naranja", "uva", "kiwi");
$elementos_a_eliminar = array("plátano", "uva");
$nuevo_array = array_diff($array_original, $elementos_a_eliminar);
print_r($nuevo_array);
En este ejemplo, tenemos un array llamado $array_original que contiene cinco elementos. También tenemos otro array $elementos_a_eliminar que especifica los elementos que queremos eliminar de $array_original.
Usamos la función array_diff() para crear un nuevo array $nuevo_array que contiene todos los elementos de $array_original que no están presentes en $elementos_a_eliminar. El primer parámetro de array_diff() es el array original, y el segundo parámetro es el array de elementos a eliminar.
Después de ejecutar este código, el $nuevo_array contendrá los siguientes elementos:
Array
(
[0] => manzana
[2] => naranja
[4] => kiwi
)
La función array_diff() eliminó los elementos "plátano" y "uva" de $array_original y devolvió un nuevo array con los elementos restantes.
Es importante notar que array_diff() compara los valores de los arrays, no las claves. El array resultante tendrá nuevas claves numéricas comenzando desde cero, incluso si el array original tenía claves de cadena o no secuenciales.
También puedes usar array_diff() con múltiples arrays para eliminar elementos presentes en cualquiera de los otros arrays:
$array1 = array("a" => "manzana", "b" => "plátano", "c" => "cereza");
$array2 = array("a" => "manzana", "b" => "arándano", "d" => "dátil");
$array3 = array("a" => "albaricoque", "b" => "plátano", "e" => "saúco");
$resultado = array_diff($array1, $array2, $array3);
print_r($resultado);
En este ejemplo, array_diff() compara $array1 con $array2 y $array3 y devuelve un nuevo array que contiene los elementos de $array1 que no están presentes ni en $array2 ni en $array3:
Array
(
[c] => cereza
)
La función array_diff() puede ser muy útil cuando necesitas filtrar un array basándote en valores específicos sin cambiar el array original. Te da la flexibilidad de generar un nuevo array solo con los elementos deseados.
| Función | Descripción |
|---|---|
array_diff() |
Crea un nuevo array que contiene elementos del primer array que no están presentes en ninguno de los otros arrays |
$resultado = array_diff($array1, $array2, ...) |
Asigna el array resultante a $resultado |
Ejemplo: Filtrar una lista de direcciones de correo electrónico
Supongamos que tienes una lista de direcciones de correo electrónico y quieres eliminar direcciones de correo electrónico específicas de la lista. Puedes usar array_diff() para crear un nuevo array sin las direcciones de correo electrónico especificadas.
$lista_correos = array("juan@ejemplo.com", "ana@ejemplo.com", "roberto@ejemplo.com", "alicia@ejemplo.com");
$correos_bloqueados = array("ana@ejemplo.com", "roberto@ejemplo.com");
$correos_filtrados = array_diff($lista_correos, $correos_bloqueados);
print_r($correos_filtrados);
Salida:
Array
(
[0] => juan@ejemplo.com
[3] => alicia@ejemplo.com
)
En este ejemplo, array_diff() se usa para filtrar el array $lista_correos eliminando las direcciones de correo electrónico especificadas en el array $correos_bloqueados. El array resultante $correos_filtrados contiene solo las direcciones de correo electrónico que no están bloqueadas.
Ejemplo: Comparar dos arrays y encontrar las diferencias
Si tienes dos arrays y quieres encontrar los elementos que están presentes en el primer array pero no en el segundo, puedes usar array_diff().
$array1 = array("manzana", "plátano", "naranja", "uva");
$array2 = array("plátano", "kiwi", "pera");
$diferencia = array_diff($array1, $array2);
print_r($diferencia);
Salida:
Array
(
[0] => manzana
[2] => naranja
[3] => uva
)
Aquí, array_diff() compara $array1 con $array2 y devuelve un nuevo array $diferencia que contiene los elementos de $array1 que no están presentes en $array2. Esto es útil cuando quieres encontrar los elementos únicos en un array comparado con otro.
Eliminar el primer o último elemento de un array en PHP
Eliminar el último elemento con array_pop()
La función array_pop() en PHP elimina el último elemento de un array y devuelve el valor del elemento eliminado. Esta función modifica el array original eliminando el último elemento y acortando el array en un elemento.
Aquí tienes un ejemplo que muestra cómo eliminar el último elemento de un array usando array_pop():
$frutas = array("manzana", "plátano", "naranja", "uva");
$fruta_eliminada = array_pop($frutas);
echo "Fruta eliminada: " . $fruta_eliminada . "\n";
print_r($frutas);
En este ejemplo, tenemos un array $frutas con cuatro elementos. Usamos la función array_pop() para eliminar el último elemento del array. El elemento eliminado se almacena en la variable $fruta_eliminada.
Después de ejecutar este código, la salida será:
Fruta eliminada: uva
Array
(
[0] => manzana
[1] => plátano
[2] => naranja
)
La función array_pop() eliminó el último elemento "uva" del array $frutas y devolvió su valor. El array $frutas se imprime luego usando print_r(), mostrando que ahora contiene solo tres elementos.
Es importante notar que array_pop() devuelve el valor del elemento eliminado, que puedes almacenar en una variable o usar directamente. Si el array está vacío, array_pop() devuelve null.
Ejemplo: Seguimiento de acciones recientes del usuario
Digamos que quieres llevar un registro de las acciones más recientes realizadas por un usuario, con un límite en el número de acciones a almacenar. Puedes usar array_pop() para eliminar la acción más antigua cuando se excede el límite.
$accionesRecientes = array();
$maxAcciones = 5;
function agregarAccionReciente($accion) {
global $accionesRecientes, $maxAcciones;
if (count($accionesRecientes) >= $maxAcciones) {
array_pop($accionesRecientes);
}
array_unshift($accionesRecientes, $accion);
}
agregarAccionReciente("Inicio de sesión");
agregarAccionReciente("Visualización de perfil");
agregarAccionReciente("Actualización de configuración");
agregarAccionReciente("Envío de formulario");
agregarAccionReciente("Cierre de sesión");
agregarAccionReciente("Inicio de sesión");
print_r($accionesRecientes);
Salida:
Array
(
[0] => Inicio de sesión
[1] => Cierre de sesión
[2] => Envío de formulario
[3] => Actualización de configuración
[4] => Visualización de perfil
)
En este ejemplo, la función agregarAccionReciente() se usa para añadir nuevas acciones al array $accionesRecientes. Si el número de acciones excede el límite $maxAcciones, se usa array_pop() para eliminar la acción más antigua del final del array. De esta manera, solo se mantienen las acciones más recientes, y las más antiguas se descartan.
Eliminar el primer elemento con array_shift()
Similar a array_pop(), la función array_shift() elimina el primer elemento de un array y devuelve el valor del elemento eliminado. Esta función también modifica el array original eliminando el primer elemento y desplazando todos los elementos restantes para llenar el hueco.
Aquí tienes un ejemplo que demuestra cómo eliminar el primer elemento de un array usando array_shift():
$numeros = array(10, 20, 30, 40, 50);
$numero_eliminado = array_shift($numeros);
echo "Número eliminado: " . $numero_eliminado . "\n";
print_r($numeros);
En este ejemplo, tenemos un array $numeros con cinco elementos. Usamos la función array_shift() para eliminar el primer elemento del array. El elemento eliminado se almacena en la variable $numero_eliminado.
Después de ejecutar este código, la salida será:
Número eliminado: 10
Array
(
[0] => 20
[1] => 30
[2] => 40
[3] => 50
)
La función array_shift() eliminó el primer elemento "10" del array $numeros y devolvió su valor. El array $numeros se imprime luego usando print_r(), mostrando que ahora contiene los cuatro elementos restantes, con sus índices desplazados en consecuencia.
Al igual que array_pop(), array_shift() devuelve el valor del elemento eliminado. Si el array está vacío, array_shift() devuelve null.
Ejemplo: Procesar una cola
Supongamos que tienes una cola de tareas representada como un array, y quieres procesar las tareas en el orden en que fueron añadidas. Puedes usar array_shift() para eliminar y recuperar la primera tarea de la cola.
$colaTareas = array("Tarea 1", "Tarea 2", "Tarea 3", "Tarea 4");
while (!empty($colaTareas)) {
$tareaActual = array_shift($colaTareas);
echo "Procesando tarea: " . $tareaActual . "\n";
// Realizar el procesamiento de la tarea aquí
}
Salida:
Procesando tarea: Tarea 1
Procesando tarea: Tarea 2
Procesando tarea: Tarea 3
Procesando tarea: Tarea 4
En este ejemplo, array_shift() se usa para eliminar y recuperar la primera tarea del array $colaTareas en cada iteración del bucle. Esto permite procesar las tareas en el orden en que fueron añadidas a la cola.
| Función | Descripción |
|---|---|
array_pop() |
Elimina el último elemento de un array y devuelve su valor |
array_shift() |
Elimina el primer elemento de un array, desplaza los elementos restantes y devuelve el valor del elemento eliminado |





