Foros del Web » Programando para Internet » PHP »

Recorrer una matriz multidimensional dinamica.

Estas en el tema de Recorrer una matriz multidimensional dinamica. en el foro de PHP en Foros del Web. imaginemos que tengo una matriz $Matriz[$a][$b] el valor de $a es variable y depende de las opciones que elije el usuario. El valor $b es ...
  #1 (permalink)  
Antiguo 25/05/2007, 18:50
 
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 233
Antigüedad: 19 años, 1 mes
Puntos: 5
Recorrer una matriz multidimensional dinamica.

imaginemos que tengo una matriz

$Matriz[$a][$b]

el valor de $a es variable y depende de las opciones que elije el usuario.
El valor $b es variable y diferente en cuanto a tamaño para cada $a, es decir que Matriz[1] puede tener 3 $b y matriz[2] solo una, y asi sucesibamente.

Digamos que quiero imprimir cada elemento de Matriz[1] con cada elemento 2de Matriz[2], con cada elemento de matriz[3], ect teniendo en cuenta que cada uno de ellos puede tener tamaños diferentes y tampoco conozco el final de Matriz[$a]

Espero que comprendan este problema y me ayuden a solucionarlo.

Un saludo.
  #2 (permalink)  
Antiguo 25/05/2007, 19:56
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Recorrer una matriz multidimensional dinamica.

Código PHP:
for ($i 0$i count($matriz); $i++){
  for (
$j 0$j count($matriz[$i]); $j++) {
     echo 
$matriz[$i][$j];
  }

Argh.. ando con sueño, pero tal vez eso sirva.. si no, de menos espero te de una idea. Suerte
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 27/05/2007, 05:42
 
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 233
Antigüedad: 19 años, 1 mes
Puntos: 5
Re: Recorrer una matriz multidimensional dinamica.

No me sirve...

Lo que realmente quiero hacer es recorrer la matriz y hacer una impresion de una forma determinada.

Cada elemento $a representa una caracteristica y cada elemento de $b representa sus posibles valores, todas las soluciones posibles serian :


a1 b1 c1 d1
a1 b1 c1 d2
a1 b1 c2 d1
ect...


Lo que ocurre es que no se el tamaño de cada la $a ni de la $b que ademas no siempre es igual.

La unica solucion que se me ocurre es reescribir todo el codigo, para no tener que usar esa matriz tan rara, pero si se les ocurre algo..

La propuesta anterior me relacionaria cada caracteristica con todos sus valores, y lo que yo quiero es relacionar cada valor con los valores de todas las demas caracteristicas.

Gracias por su tiempo.
  #4 (permalink)  
Antiguo 27/05/2007, 08:45
 
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 233
Antigüedad: 19 años, 1 mes
Puntos: 5
Re: Recorrer una matriz multidimensional dinamica.

ya que al final deje el tamaño maximo del primer indice, es 6 realize este codigo:



Código:
for ($va=1;$va<=count($Resultado[$va]);$va++){
$Peso_Parcial=$Peso_Resultado[1][$va]
---------> if ($Resultado[2]==NULL){
echo Nombre_Gen[1].' '.Resultado[1][$va].'<br>';
}
else{
for ($vb=1;$vb<=count($Resultado[$vb]);$vb++){
$Peso_Parcial=$Peso_Parcial+$Peso_Resultado[2][$vb]
if ($Resultado[3]==NULL){
echo Nombre_Gen[1].' '.Resultado[1][$va].', '.
echo Nombre_Gen[2].' '.Resultado[2][$vb].'<br>'.
}
else{
for ($vc=1;$vc<=count($Resultado[$vc]);$vc++){
$Peso_Parcial=$Peso_Parcial+$Peso_Resultado[3][$vc]
if ($Resultado[4]==NULL){
echo Nombre_Gen[1].' '.Resultado[1][$va].', '.
echo Nombre_Gen[2].' '.Resultado[2][$vb].', '.
echo Nombre_Gen[3].' '.Resultado[3][$vc].', '.
echo Nombre_Gen[4].' '.Resultado[4][$vd].'<br>'.
}
else{
for ($vd=1;$vd<=count($Resultado[$vd]);$vd++){
$Peso_Parcial=$Peso_Parcial+$Peso_Resultado[4][$vd]
if ($Resultado[5]==NULL){
echo Nombre_Gen[1].' '.Resultado[1][$va].', '.
echo Nombre_Gen[2].' '.Resultado[2][$vb].', '.
echo Nombre_Gen[3].' '.Resultado[3][$vc].', '.
echo Nombre_Gen[4].' '.Resultado[4][$vd].'<br>'.
echo Nombre_Gen[5].' '.Resultado[5][$vd].'<br>'.
}
else{
for ($ve=1;$ve<=count($Resultado[$ve]);$ve++){
$Peso_Parcial=$Peso_Parcial+$Peso_Resultado[5][$ve]
if ($Resultado[6]!=NULL){
for ($ve=1;$ve<=count($Resultado[$ve]);$ve++){
$Peso_Parcial=$Peso_Parcial+$Peso_Resultado[6][$ve]
echo $Peso_Parcial/$Ptotal*100;
echo Nombre_Gen[1].' '.Resultado[1][$va].', '.
echo Nombre_Gen[2].' '.Resultado[2][$vb].', '.
echo Nombre_Gen[3].' '.Resultado[3][$vc].', '.
echo Nombre_Gen[4].' '.Resultado[4][$vd].', '.
echo Nombre_Gen[5].' '.Resultado[5][$ve].', '.
echo Nombre_Gen[6].' '.Resultado[6][$vf].', '.
}
}
}}
}}
}}
}}
}}y me dice unexpected T_IF en la linea marcada, me dicen el error?

Última edición por ikarush; 27/05/2007 a las 08:51 Razón: correccion de errores
  #5 (permalink)  
Antiguo 27/05/2007, 08:49
 
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 233
Antigüedad: 19 años, 1 mes
Puntos: 5
Re: Recorrer una matriz multidimensional dinamica.

.......................

Última edición por ikarush; 27/05/2007 a las 08:52 Razón: Envie 2 veces sin querer y no deja borrar
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 21:57.