Categorías: PHP y MySQL

PHP unset(): Eliminar elementos de arrays y variables

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:

Sintaxis de PHP unset()

Vamos con la sintaxis extraída de su web oficial:

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:

$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:

//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:

//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.

compartir
Publicado por
Aner Barrena