Php

Como rotar un array en php

Por : Jhons_1101
2017-03-20
Tags :
Existen tres maneras para rotar un array en php, dos opciones muy ortodoxas pero practicas. Una de ellas es la más recomendada por su practicidad y sencillez, veamos cada una de ellas y dejemos un ejemplo simple para su uso.

Que esperamos obtener.....


//Salida: ('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre')



Y esperamos conseguir esto....


//Salida: ('diciembre','noviembre','octubre','septiembre','agosto','julio','junio','mayo','abril','marzo','febrero','enero')

compartir en facebook compartir en Google compartir en Twitter compartir en Blogger compartir como código embebido compartir la url
  • Rotar un array
  • Primer manera ortodoxa.....

    Vamos a implementar una rotación moviendo directamente los elementos del array del inicio al final.
    Lo primero que haremos será guardar el primer elemento del array en una variable...
    
    $meses        = array ('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre');
    $posicionCero = $meses[0];
    $cantMeses    = (count($meses)-1);
    
    

    Siguiente paso será ir moviendo los elementos... a la posición previa. Esto debemos hacerlo a partir del segundo elemento del array.
    ya que anteriormente guardamos el valor en la variable $posicionCero
    
    for($i = 0; $i < count($meses)-1; $i++) {
        $iterador         = (count($meses)-1);
        $arrayInverso[$i] = $meses[$iterador-$i];
    }
    
    

    Lo último será al array que estamos construyendo '$arrayInverso' en su última posición asignarle el valor del primer elemento..
    
    $arrayInverso[$cantMeses] = $posicionCero;
    
    
    Con los pasos anteriores habremos rotado un array...
    Veamos otra manera de rotar un array en php de manera más compleja mediante las funciónes propias de php array_unshift, array_pop y array_push.

  • Rotación por funciones
  • Para este ejemplo, algo mas complejo veremos que son mas pasos... quédate con nosotros y miremos cada línea.
    
    $meses        = array ('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre');
    $meses2 = array();
    
    

    Teniendo nuestro array de meses, establecemos otro array vacío para alojar parte del array sobrante.
    Recorremos nuestro array de meses... capturando el ultimo elemento del array mediante array_pop, paso seguido capturamos el primer elemento del array... el cual los intercambiaremos de posición.
    
    for ($i = 0; $i < (count($meses)-1); $i++){
    
        $elemento = array_pop($meses);
        $ultimo   = $meses[$i];
        
        if ($i == 0){
            array_unshift($meses,$elemento);
        } else {
            $meses[$i] = $elemento;
            array_unshift($meses2, $ultimo);
        }
    }
    
    

    Recorremos cada posición de array meses 2 y se lo asignamos al array meses mediante el método array_push
    
    for ($i = 0; $i < (count($meses2)); $i++){
        array_push($meses, $meses2[$i]);
    }
    
    

    Terminando, imprimimos el array y tendremos.... tal cual como en el caso uno (1).
    
    Array
    (
        [0] => diciembre
        [1] => noviembre
        [2] => octubre
        [3] => septiembre
        [4] => agosto
        [5] => julio
        [6] => junio
        [7] => mayo
        [8] => abril
        [9] => marzo
        [10] => febrero
        [11] => enero
    )
    
    


    Para ampliar información no olvides revisar la fuente oficial......



  • Mediante array_reverse
  • La opción más sencilla, práctica y recomendada es sin igual 'array_reverse'.. su uso es demasido simple.
    
    $meses        = array ('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre');
    print_r(array_reverse($meses));
    
    




    Si este contenido te fue útil, no olvides compartirlo en redes sociales, Considéralo. Puede ser la manera de agradecer!


    Agrega tu comentario...

    Puedes utilizar etiquetas <pre></pre>, <p></p>, <div></div>, + (Nombre usuario, para responderle a alguien)

    zULZWGF





    Este post no tiene comentarios, sé el primero en hacerlo
    Esta entrada no cuenta con imágenes adjuntas

    Unete al grupo de whatsApp +57 316 392 6456

    Sigue el grupo en facebook

    Siguenos.....