Vamos a repasar la función de PHP unset(), esta función elimina una variable o un elemento de un array u objeto.
Dependiendo de la variable que se intente eliminar unset() tendrá un comportamiento u otro. No es lo mismo eliminar un objeto/array que un entero. Con la función isset() podemos comprobar si la variable está definida y en uso.
unset() respeta el ámbito de las variables, si una variable está en una función y es destruida, solo se eliminará dicha variable. Pero si existiese una variable con mismo nombre en otro lugar del código esta no variaría.
En caso de trabajar con arrays os listo estas otras funciones:
- PHP implode() y PHP explode(): Convierte un array en una cadena de texto y viceversa.
- PHP foreach(): Función para recorrer arrays.
- PHP array_push(): Añade elementos a un array.
- PHP sort(), asort() y ksort(): Estas funciones son diferentes formas para ordenar un array.
Sintaxis de PHP unset()
Vamos con la sintaxis extraída de su web oficial:
1 |
unset ($var1,$var2...) |
Comento el código:
- La función unset() puede eliminar una o varias variables u objetos dependiendo de cuantas variables/objetos se pasen como parámetros en la función.
Ejemplo de PHP unset() para eliminar una o varias variables
Primer ejemplo para borrar una o varias variables:
1 2 3 4 5 6 7 |
$variable1 = "valor1"; $variable2 = "valor2"; $variable3 = "valor3"; var_dump ($variable1, $variable2, $variable3); unset($variable1, $variable2, $variable3); var_dump ($variable1, $variable2, $variable3); |
Os explico el ejemplo:
- Declaro 3 variables con su valor correspondiente.
- A continuación saco con PHP var_dump() el tipo de variable y su contenido por pantalla.
- Elimino las 3 variables con unset() y vuelvo a sacar el contenido de las variables.
- El resultado debería ser NULL NULL NULL.
Ejemplo de PHP unset() para eliminar un elemento de un array numérico y asociativo
Este segundo ejemplo tiene 2 partes, en esta primera vamos a eliminar un elemento de un array numérico:
1 2 3 4 5 6 7 8 9 10 11 |
//muestro el array numerico original $array1 = array(1,2,3,4,5,6); var_export ($array1); //elimino el tercer elemento del array y muestro el array unset($array1[2]); var_export ($array1); //elimino el primer y segundo elemento del array y muestro el array unset($array1[0],$array1[1]); var_export ($array1); |
Os explico el código superior:
- Creo el array numérico y saco su valor por pantalla con PHP var_export().
- Elimino el tercer elemento del array y muestro el valor actualizado del array.
- Elimino el primer y segundo elemento del array y muestro el valor actualizado del array
Tened en cuenta que el orden de los índices del array numérico se van corriendo cada vez que se elimina un elemento.
En esta segunda y última parte del ejemplo vamos a eliminar un elemento de un array asociativo:
1 2 3 4 5 6 7 8 9 10 11 |
//Declaro el array asociativo y muestro su valor $array2 = array(uno=>1, dos=>2, tres=>3, cuatro=>4, cinco=>5, seis=>6); var_export ($array2); //Elimino el elemento con clave = dos y muestro el array unset($array2['dos']); var_export ($array2); //Elimino los elementos con clave = uno y cinco, despues muestro el array unset($array2['uno'],$array2['cinco']); var_export ($array2); |
Os detallo el código:
- Creo el array asociativo y saco su valor por pantalla con PHP var_export().
- Elimino el elemento con clave = ‘dos’ y muestro el valor actualizado del array.
- Elimino los elementos con clave = a ‘uno’ y ‘cinco’, muestro el valor actualizado del array.
Otras funciones para trabajar con arrays
Os recomiendo leer este otro post sobre funciones para trabajar con arrays en PHP.