Ver Mensaje Individual
  #7 (permalink)  
Antiguo 15/09/2009, 23:25
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema el recoger variables

Hola
Bueno, a ver si me se explicar

Tenemos esto

$letras = array("A","B","C","D","E");
//Array donde por cada letra genero las posiciones y valores necesarios
$letrasnumeros = array("A" => array("0" => "1", "1" => "2", "2" => "3", "3" => "4"),
"B" => array("4" => "1", "5" => "2", "6" => "3", "7" => "4"),
"C" => array("8" => "1", "9" => "2", "10" => "3", "11" => "4"),
"D" => array("12" => "1", "13" => "2", "14" => "3", "15" => "4"),
"E" => array("16" => "1", "17" => "2", "18" => "3", "19" => "4")
);
$resultados = array();

Ahora, no se que tan familiarizado estes con los arreglos pero piensa en ellos como familias
Asi pues $letras tiene los hijos A,B,C,D,E y los tuvo en orden, es decir, si haces esto
echo $letras[0] veras como resultado A, $letras[1] es B y asi sucesivamente pues los arreglos empiezan desde la posición cero y su orden natural es numerico
Ahora, este orden natural puede ser modificado con lo que se conoce con arrays asociativos, que como su nombre lo dice, asocia elementos, en este caso, asocia un id para el orden (el que naturalmente es 0, 1, etc) con un conjunto de elementos, y a su vez a estos se les puede asociar otros arrays cambiandoles el orden natural (y asi es que hago $letrasNumeros)
Asi pues tenemos el array $letrasNumeros, que, pensandolo como una familia, es una bastante numerosa
por ende $letrasnumeros es la familia, y digamos que son cinco hermanos (A,B,C,D,E) los cuales tienen hijos
(ej, E tiene como hijos 16,17,18,19) en forma ordenada, y ahora el orden natural esta dado, ya no como en $letras que se rastreo
solo a una camada, sino por cada camada de los que vienen de $letras

Asi entonces si imprimieras echo $letrasnumeros['E'][0] no obtendrias nada pues E no tiene un hijo en el orden 0, sino que los hijos
de el fueron los ultimos en orden, es decir, para ver el primer hijo de E tendrias que hacer echo $letrasnumeros['E'][16],
obteniendo ahora si 1 que es el valor que 16 tiene asignado

Y pues ya luego el resultado de querer obtener resultados especificos sobre la familia lo hago con esto

$resultados[$contador][0] = $letraAleatoria.$letrasnumeros[$letraAleatoria][$numeroAleatorio];
$resultados[$contador][1] = $numeroAleatorio;
Donde $resultados va a ser un array que va a tener tantos hijos como aumente $contador, es decir, en este caso $resultados tiene 4 hijos,
y a su vez, esos hijos tienen 2 hijos [0] y [1], y estos son quienes van a tener la información que les vamos a pasar
Asi, 0 tendra la $letraAleatoria concatenada con el punto (.) con el valor del array $letrasnumeros[$letraAleatoria][$numeroAleatorio],
que, para ejemplo de la E, vendria siendo $letrasnumeros['E']['17'] suponiendo que la letra elegida fue la E y el numero aleatorio fue 17, y por ende
$resultados[$contador][0] va a ser igual a 2 , y $resultados[$contador][1] va a ser igual a 17, pues este fue el valor del aleatorio

Enredado??? si un poco, trate de ser lo más explicito, pero pues si aún esto esta en jerga complicada, te recomiendo
que busques sobre arrays en php para que desenredes la madeja
Saludos