Ir al contenido

Rotar un array en PHP

Rotar un array en PHP consiste en desplazar el primer elemento de un array a la última posición de dicho array y desplazar todos el resto una posición adelante.

Si partimos de un array con la siguiente información:

{"amaya","julio","javier","nacho","sonsoles"}

Rotar un array en PHP conseguiría el siguiente efecto:

{"julio","javier","nacho","sonsoles","amaya"}

Para rotar un array en PHP vamos a ver dos opciones. Por un lado como implementar la lógica explicada anteriormente moviendo los elementos del array y la segunda utilizando funciones ya existentes en PHP.

En este caso vamos a implementar la rotación moviendo directamente los elementos del array. Lo primero que haremos será guardarnos el primer elemento

$primero = $numeros[0];

Ya que será este primer elemento el que posicionemos en la última posición. Lo siguiente será ir moviendo los elementos desde su posición, a la posición previa. Esto lo ejecutaremos desde el segundo elemento.

for($x=0; $x<count($lista)-1; $x++)
$lista[$x] = $lista[$x+1];

Lo último que ejecutará este algoritmo será el poner en la última posición, la cual es la que tiene ahora mismo la variable de control $x, el que era el primer elemento.

$lista[$x-1]= $primero;

De esta forma ya habremos conseguido rotar un array en PHP moviendo de forma manual los elementos.

La lógica que hemos explicado de rotación la podemos ejecutar en PHP mediante un par de funciones. En concreto con aray_push y array_shift.

En el caso de array_shift lo que conseguimos es obtener el primer elemento de un array, extrayéndolo de dicho array.

array_shift($lista);

Y con array_push lo que hacemos es poner un elemento al fina del array.

array_push($lista,$elemento);

En el caso de la función aray_push se le indica como primer parámetro el array sobre el que se quiere añadir el elemento.

El código para rotar un array en PHP con funciones sería el siguiente:

$elemento = array_shift($lista);
array_push($lista,$elemento);

O lo que sería lo mismo en una sola línea, y mucho más sencillo.

array_push($lista,array_shift($lista));

Ya hemos visto dos formas sencillas de rotar un array en PHP.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Rotar un array en PHP

Ejemplo que nos muestra dos formas de rotar un array en PHP. Moviendo elementos y mediante funciones de PHP.

Descargar código