Autor Tema: [Función] Mover Array  (Leído 3273 veces)

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
[Función] Mover Array
« en: 04 de Abril de 2011, 07:16:21 am »
¡Hola!

A base de mucho aburrimiento, me he puesto a crear una función en PHP para poder crear un array cíclico, en el cual pueda mover los elementos el espacio que yo desee hacia la derecha, pero que no se pierdan los elementos que estaban al principio. A ver si no me entendieron, pongo un ejemplo:

Citar
Tengo un array en el cual almaceno los ítems de un menú:

$menu = array('Inicio','Edición','Opciones');

De repente se me ocurre que quiero poner el elemento 'Edición', al principio del array, para que quede de la siguiente manera:

$menu = array('Edición','Opciones','Inicio');

Y así sucesivamente, irlos moviendo los espacios que yo quiera.

Para lo anterior, me dispuse a crear una pequeña y simple función, en la cual puedo hacer lo que expliqué anteriormente, la cual me ha quedado así:

function correrArray($x$array)
{
	
if(
$x count($array))
	
{
	
	
$x 0;
	
}
	

	
for(
$i 0$i count($array); $i++)
	
{
	
	
if((
$i $x) >= count($array))
	
	
{
	
	
	
$nuevo[$array[$i]] = $array[(count($array) - $x $i) * -1];
	
	
}
	
	
else
	
	
{
	
	
	
$nuevo[$array[$i]] = $array[($i $x)];
	
	
}
	
}
	

	
return 
$nuevo;
}


Al principio me costó un poco idearla, pero luego de algún tiempo probando di con la solución :D
Espero que les sirva y la disfruten.

Saludos ^^
- Moderador de PHP


Comunidad PHPeros

[Función] Mover Array
« en: 04 de Abril de 2011, 07:16:21 am »

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Función] Mover Array
« Respuesta #1 en: 04 de Abril de 2011, 14:47:53 pm »
Interesante función, me gustaría darte un karma, allá te va :).

Desconectado RumbaStereo

  • PHPero Avanzado
  • ****
  • Mensajes: 362
  • Karma: 7
  • Sexo: Masculino
  • Diseñador Grafico
    • Ver Perfil
Re:[Función] Mover Array
« Respuesta #2 en: 04 de Abril de 2011, 16:37:38 pm »
Que Buena Funcion Warlox Me Abristes las Puertas a una Cosa que me Puede Servir para mi MiniChat K+
El diseño maneja lo que es creatividad, entrega y amor.

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.738
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Función] Mover Array
« Respuesta #3 en: 04 de Abril de 2011, 16:51:36 pm »
No me cabe duda de que en verdad estabas muy pero muy aburrido xD

Supongo que a alguien le servirá de algo... xD
Saludos.
Twitter: @JoakoM010



Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Función] Mover Array
« Respuesta #4 en: 04 de Abril de 2011, 17:19:28 pm »
¡Gracias por los karmas! xD

----

@Joako de hecho estaba haciendo una función para codificar cadenas en cifrado césar xD, veré si luego pongo el script :P
Saludos ^^
- Moderador de PHP


Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.738
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Función] Mover Array
« Respuesta #5 en: 06 de Abril de 2011, 01:38:40 am »
¡Gracias por los karmas! xD

----

@Joako de hecho estaba haciendo una función para codificar cadenas en cifrado césar xD, veré si luego pongo el script :P
Saludos ^^

Adelante xD
Twitter: @JoakoM010



Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Función] Mover Array
« Respuesta #6 en: 06 de Abril de 2011, 16:14:16 pm »
Me suena a que hay una función nativa de PHP que hace esto, aún así, genial aporte.

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Función] Mover Array
« Respuesta #7 en: 06 de Abril de 2011, 17:37:35 pm »
Me suena a que hay una función nativa de PHP que hace esto, aún así, genial aporte.

West :O estás vivo xD. Gracias por lo de genial aporte :D
Y no, creo que no hay función nativa jeje, pero si la encuentras dímela :P

Saludos ^^
- Moderador de PHP


Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Función] Mover Array
« Respuesta #8 en: 06 de Abril de 2011, 20:31:34 pm »
Pues no he encontrado la función :/ Aún así, para demostrar que estoy vivo (xD), ¿así la función no tardaría menos y sería más corta?

function correrarray($x, &$array) {
$c count($array);
for(
$i=0;$i<$x;$i++) {
$v $array[($c-1)];
array_unshift($array$v);
array_pop($array);
}
}


(Ni idea de si realmente funciona :/ xD

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Función] Mover Array
« Respuesta #9 en: 07 de Abril de 2011, 00:31:39 am »
Explícala que casi no la he entendido xD
- Moderador de PHP


Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Función] Mover Array
« Respuesta #10 en: 07 de Abril de 2011, 18:56:48 pm »
Explícala que casi no la he entendido xD


function correrarray($x, &$array) {
$c count($array); // Contamos los elementos del array
for($i=0;$i<$x;$i++) { // Iteramos el número de posiciones que queremos correr le array
$v $array[($c-1)]; // Obtenemos el último elemento
array_unshift($array$v); // Añadimos al inicio el último elemento
array_pop($array); // Eliminamos el último elemento
}
}


Se usaría así:
$array = array('hola','que','tal');
correrarray(1, $array);
// El array quedaria ('tal','hola','que')

Conectado view

  • PHPero Master
  • ******
  • Mensajes: 53.683
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil