Acceso a array imposible

sukhur
10 de Julio del 2005
Buenas a [email protected] !

Nose si esto sera posible, pero lo explico:

Partiendo de esto:

Array1
(
[0] => Array
(
[0] => tres
[1] => uno
)
)

Es decir un array que contiene otro array que contiene "tres" y "uno". Pues bien con "tres" y "uno" quiero acceder a este otro array:

Array2
(
[tres] => Array
(
[uno] => Variable "tres/uno"
)
)

Es decir un array que contiene otro array ("tres") que contiene a "uno" el cual contiene un valor que en este caso es una cadena de texto.

Hasta aqui todo bien, porque sabiendo que "uno" esta dentro de "tres" bastaria con acceder de esta manera array2[array1[0][0]][array1[0][1]].

Pero el problema no es ese sino que array1 podria haber sido esto:

Array1
(
[0] => Array
(
[0] => tres
[1] => uno
[2] => dos
[3] => cuatro
)
)

A donde quiero ir a parar es si alguien tiene alguna idea de como se pudiera acceder a Array2 partiendo de que el contenido de Array1 puede no ser constante.

Gracias de antemano :D

otreblanc
10 de Julio del 2005
Hola!

Te falta dar informacion porque tengo una duda:
El ejemplo que pones al ultimo (y siguiendo la logica del primer ejemplo),
tenemos que el -Array2- puede ser interpretado de 2 formas:
a) Array de 2 dimensiones
"uno, dos y cuatro" estan dentro de "tres"
Requiere que manejes un -Array2- asi:
Array2
(
[tres] => Array
(
[uno] => variable tres/uno
[dos] => variable tres/dos
[cuatro] => variable tres/cuatro
)
)
)
)
Acceso:
echo $Array2[$Array1[0][0]][$Array1[0][1]]; //variable tres/uno
echo $Array2[$Array1[0][0]][$Array1[0][2]]; //variable tres/dos
echo $Array2[$Array1[0][0]][$Array1[0][3]]; //variable tres/cuatro

b) Array de 4 dimensiones
"cuatro" esta dentro de "dos"
"dos" esta dentro de "uno"
"uno" esta dentro de "tres"
Requiere que manejes un -Array2- asi:
Array2
(
[tres] => Array
(
[uno] => Array
(
[dos] => Array
(
[cuatro] => variable tres/uno/dos/cuatro
)
)
)
)
Acceso:
echo $Array2[$Array1[0][0]][$Array1[0][1]][$Array1[0][2]][$Array1[0][3]];

Ya que: "Array1 puede no ser constante",
esto da a entender que tambien -Array2- no será constante,
puesto que -Array1- lo estas manejando como -index- de -Array2-.
Lo puedes resolver facilmente con un ciclo -for-
y accesando por medio de variables-variables.
Para obtener la solucion hace falta que pongas mas ejemplos con sus correspondientes accesos.

Enjoy! xD

Loop
10 de Julio del 2005
gettype ?????

<?php

$array=array(
1 => array("uno" => "1",
"dos" => "2",
"tres" => array("cosa" => "una cosa"),
"cuatro" => "4"),

2 => "hola");

foreach($array as $mat => $value){
if(gettype($value)=="array"){
foreach($value as $otra_cosa => $otro_valor){
if(gettype($otro_valor)=="array"){
foreach($otro_valor as $una_mas => $puras_fallas){
echo $puras_fallas." ";
}
} else { echo $otro_valor." ";}
}
} else { echo $value." ";}
}
?>