emmgfx

Eliminar posición de un array en PHP

Para borrar variables se utiliza unset(), también para eliminar posiciones de un array, pero si sólo se usa unset() la posición no se elimina del todo, sigue existiendo pero esta vacía. No sé si lo estoy explicando bien, pero con los ejemplos se entiende mejor. Es bastante sencillo, no es algo complicado de hacer, sólo hay que entenderlo.
Por ejemplo, con este array:

$array = 'ni sus,manos son,tan blancas,ni son,blancas sus,palomas';
$array = explode(',',$array);
Array
(
    [0] => ni sus
    [1] => manos son
    [2] => tan blancas
    [3] => ni son
    [4] => blancas sus
    [5] => palomas
)

Si se hace

unset($array[4]);

Quedará algo como:

Array
(
    [0] => ni sus
    [1] => manos son
    [2] => tan blancas
    [3] => ni son
    [5] => palomas
)

Es decir, el elemento no existe pero su posición en el array no se ha adaptado, hace un salto del 3 al 5 y en ocasiones lo ideal sería que el 4 se eliminara y el siguiente (el 5) pasara a ocupar su posición.

Para eso se puede utilizar la función array_values(), por ejemplo:

$array = array_values($array);

Haría que el resultado fuera:

Array
(
    [0] => ni sus
    [1] => manos son
    [2] => tan blancas
    [3] => ni son
    [4] => palomas
)

Articulos relacionados

2 comentarios

josepzin → http://josezanni.com/blog
Comentado hace 6 meses

Por este “truco” de PHP te has ganado un espacio en mi lista de RSS :)

Josep Viciana → http://www.emm-gfx.net
Comentado hace 6 meses

Bien josepzin :) me alegro de que te haya resultado util.

Espero volver a ver comentarios tuyos por aquí entonces ;)

Un saludo.

Escribir un comentario