Este es un ejercicio simple pero que nos servirá a la mayoría al trabajar con arreglos en PHP. En algún momento de nuestras vidas puede que nos topemos con el problema de eliminar un elemento de un arreglo en PHP.
Por ejemplo, si tenemos un carrito de compras como el que implementamos en el sistema de ventas MVC tendremos que saber quitar un elemento de un array en PHP.
Esto es muy simple, no importa cómo esté compuesto nuestro arreglo. Puede ser un arreglo de arreglos, de objetos, de números, de cadenas o de lo que sea, eso no importará.
Lo que tenemos que conocer es el índice del arreglo, es decir, ¿en cuál posición está nuestro elemento? y para ello podemos hacer una búsqueda secuencial como lo expliqué en este post.
Una vez que tenemos al índice, llamamos a array_splice cuya documentación se encuentra aquí.
Lo que hace esa función es remover o eliminar elementos de un arreglo y opcionalmente remplazarlos con otros. Como argumentos, en orden, recibe:
Pero bueno, eso confunde un poco. Para eliminar únicamente un elemento, le pasamos el arreglo, luego el índice o posición y finalmente el número 1; lo que hará que elimine únicamente un elemento a partir del índice que le damos, y que no lo remplace con nada.
Cuidado: esta función no devuelve el arreglo, devuelve los elementos eliminados y modifica directamente al arreglo; es decir, recibe al array por referencia.
Vamos a eliminar un elemento de nuestro arreglo de frutas. En este caso vamos a omitir la búsqueda secuencial para hacer más corta la explicación. Por cierto, estamos usando la sintaxis corta de arreglos.
<?php
$frutas = ["Manzana", "Pera", "Sandía", "Limón", "Naranja"];
#Imprimirlo antes de quitarle un elemento
echo "Antes de eliminar:\n";
print_r($frutas);
/*
Nota: aquí el índice lo definimos nosotros mismos, también
puedes buscarlo usando una búsqueda secuencial:
Este índice también puedes recibirlo por $_GET, a través de un formulario
o por el medio que desees
*/
# El índice le pertenece a Sandía
$indiceParaEliminar = 2;
$cuantos = 1;
# Eliminar 1 elemento a partir del índice 2
# Recordemos que array_splice modifica el arreglo, no necesitamos guardar su resultado
array_splice($frutas, $indiceParaEliminar, $cuantos);
echo "Después de eliminar:\n";
print_r($frutas);
?>
Como dice el código, el índice podemos recibirlo por cualquier método, y si deseamos buscarlo nosotros mismos entonces hacemos la búsqueda.
No guardamos el resultado de la llamada a la función porque array_splice modifica directamente al arreglo que le pasamos, y devuelve lo que eliminó, cosa que no nos importa por el momento.
La salida es esta:
En este caso lo hicimos con un arreglo de cadenas, pero funciona con arreglos de cualquier tipo.
Aquí puedes ver cómo ejecutar un archivo de PHP desde la terminal.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios