Foros del Web » Programando para Internet » PHP »

Mesclar elementos de un array.

Estas en el tema de Mesclar elementos de un array. en el foro de PHP en Foros del Web. Hola gente, buenos dias. Tengo un array con la siguiente estructura: Array ( [67] => Array ( [id] => 67 [id_test] => 20 [question] => ...
  #1 (permalink)  
Antiguo 15/11/2004, 07:40
 
Fecha de Ingreso: junio-2004
Mensajes: 84
Antigüedad: 13 años, 5 meses
Puntos: 0
Mesclar elementos de un array.

Hola gente, buenos dias.
Tengo un array con la siguiente estructura:
Array
(
[67] => Array
(
[id] => 67
[id_test] => 20
[question] => TEST
[text] => BAD
[correct] => 0
)

[66] => Array
(
[id] => 66
[id_test] => 20
[question] => TEST
[text] => DATA
[correct] => 0
)
)
Con dicho array(el array puede tener N elementos), necesito intercambiar los elementos del mismo en forma aleatoria. Php tiene una funcion para ello (llamada array_rand), pero la misma parece funcionar mal con array de array. Porque al aplicarla (array_rand($answers,count($answers));) me devuelve lo siguiente:
Array
(
[0] => 66
[2] => 67
)
Alguien sabe el porque del resultado o tiene alguna idea de como hacer el intercambio?

Desde ya muchas gracias.
__________________
Repositorio de funciones utiles para programadores y administradores
http://www.particle.com.ar
  #2 (permalink)  
Antiguo 15/11/2004, 10:12
 
Fecha de Ingreso: junio-2004
Mensajes: 84
Antigüedad: 13 años, 5 meses
Puntos: 0
Nadie sabe que hacer?
__________________
Repositorio de funciones utiles para programadores y administradores
http://www.particle.com.ar
  #3 (permalink)  
Antiguo 15/11/2004, 12:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. que significa "intercambiar"? .. cambiar los indices (ese [67] => Array, etc ) de tu array y respetar los del array anidado? ..

También tienes otra función:
array_shuffle()
http://www.php.net/manual/es/function.shuffle.php

Pero, fijate bien como lo hace esa función (y la otra) con respecto a los indices (sobre todo cuando son asociativos) .. de todas formas en los comentarios de los usuarios tienes funciones alternativas o mejoras a esta.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:54.