Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/11/2013, 06:59
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Recorrer un array seleccionando solo un elemento por fila

No es tan complicado.... solo 4 for....

Tus datos son un conjunto de n A, n B, n C, n D....

A1,A2,.....,An
B1,B2,.....,Bn
C1,C2,.....,Cn
D1,D2,.....,Dn

Luego debes recorrerlos de forma anidada...

Código PHP:
Ver original
  1. $arreglo=[[0]=>[A=>0,B=>0,C=>0,D=>0]
  2.                  [1]=>[A=>1,B=>1,C=>1,D=>1]
  3.                  ....
  4.                  [n]=>[A=>n,B=>n,C=>n,D=>n]
  5.                ]
  6.  
  7. $resultado=array();
  8. for ($a=0;$a<count($arreglo);$a++){
  9.   for ($b=0;$b<count($arreglo);$b++){
  10.     for ($c=0;$c<count($arreglo);$c++){
  11.       for ($d=0;$d<count($arreglo);$d++){
  12.            $combina=array();
  13.            $combina["A"]=$arreglo[$a]["A"];
  14.            $combina["B"]=$arreglo[$b]["B"];
  15.            $combina["C"]=$arreglo[$c]["C"];
  16.            $combina["D"]=$arreglo[$d]["D"];
  17.  
  18.           $resultado[]=$combina;
  19.       }
  20.     }
  21.   }
  22. }


$resultado será

A0,B0,C0,D0
A0,B0,C0,D1
A0,B0,C0,D2
....
A0,B0,C0,Dn-1
A0,B0,C1,D0
A0,B0,C1,D1
A0,B0,C1,D2
....
A0,B0,C1,Dn-1
.....
A0,B0,Cn-1,Dn-1
...
A0,Bn-1,Cn-1,Dn-1
...
An-1,Bn-1,Cn-1,Dn-1

No?

Puedes usar indices numéricos

$combina[0]=$arreglo[$a][0];
$combina[1]=$arreglo[$b][1];
$combina[2]=$arreglo[$c][2];
$combina[3]=$arreglo[$d][3];
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 21/11/2013 a las 07:11