Visa ett inlägg
Oläst 2007-09-26, 13:19 #1
Starwebs avatar
Starweb Starweb är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2004
Inlägg: 332
Starweb Starweb är inte uppkopplad
Flitig postare
Starwebs avatar
 
Reg.datum: Jan 2004
Inlägg: 332
Sitter med ett problem som kanske är rätt enkelt men känner bara att min hjärna är på STREJK och inte verkar inte vilja klura ut svaret... =(
Behöver lite php-hjälp!


Jag har en array, med lite olika värden som ser ut såhär:

$aaList = array();
$aaList[0][0] = 88;
$aaList[0][1] = 77;
$aaList[0][2] = 66;

$aaList[1][0] = 99;
$aaList[1][1] = 111;

$aaList[2][0] = 11;
$aaList[2][1] = 10;
$aaList[2][2] = 14;
$aaList[2][3] = 12;



Utskriven med print_r($aaList); ser den alltså ut såhär:

Array
(
[0] => Array
(
[0] => 88
[1] => 77
[2] => 66
)
[1] => Array
(
[0] => 99
[1] => 111
)
[2] => Array
(
[0] => 11
[1] => 10
[2] => 14
[3] => 12
)
)



Steg #1:
Det jag vill göra är att ta det FÖRSTA elementet i den FÖRSTA array
sedan det FÖRSTA elementet i den ANDRA array
sen det FÖRSTA elementet i den TREDJE arrayn.

Steg #2:
Det jag vill göra är att ta det FÖRSTA elementet i den FÖRSTA array
sedan det FÖRSTA elementet i den ANDRA array
sen det ANDRA elementet i den TREDJE arrayn.

Steg #3:
Det jag vill göra är att ta det FÖRSTA elementet i den FÖRSTA array
sedan det FÖRSTA elementet i den ANDRA array
sen det TREDJE elementet i den TREDJE arrayn.

Steg #4:
Det jag vill göra är att ta det FÖRSTA elementet i den FÖRSTA array
sedan det FÖRSTA elementet i den ANDRA array
sen det FJÄRDE elementet i den TREDJE arrayn.

Steg #5:
Det jag vill göra är att ta det FÖRSTA elementet i den FÖRSTA array
sedan det ANDRA elementet i den ANDRA array
sen det FÖRSTA elementet i den TREDJE arrayn.

Steg #6:
Det jag vill göra är att ta det FÖRSTA elementet i den FÖRSTA array
sedan det ANDRA elementet i den ANDRA array
sen det ANDRA elementet i den TREDJE arrayn.

osv osv tills samtliga element är genomgånga, men de ska ha den följden som ovan.



Om man skulle verkligen SKRIVA ut exakt vad jag vill
åstadkomma utan att använda loopar eller "dynamik" så blir det såhär:

?><pre><?
echo $aaList[0][0]."
";
echo $aaList[1][0]."
";
echo $aaList[2][0]."
";
echo $aaList[0][0]."
";
echo $aaList[1][0]."
";
echo $aaList[2][1]."
";
echo $aaList[0][0]."
";
echo $aaList[1][0]."
";
echo $aaList[2][2]."
";
echo $aaList[0][0]."
";
echo $aaList[1][0]."
";
echo $aaList[2][3]."
";
echo $aaList[0][0]."
";
echo $aaList[1][1]."
";
echo $aaList[2][0]."
";
echo $aaList[0][0]."
";
echo $aaList[1][1]."
";
echo $aaList[2][1]."
";
echo $aaList[0][0]."
";
echo $aaList[1][1]."
";
echo $aaList[2][2]."
";
echo $aaList[0][0]."
";
echo $aaList[1][1]."
";
echo $aaList[2][3]."
";
echo $aaList[0][1]."
";
echo $aaList[1][0]."
";
echo $aaList[2][0]."
";
echo $aaList[0][1]."
";
echo $aaList[1][0]."
";
echo $aaList[2][1]."
";
echo $aaList[0][1]."
";
echo $aaList[1][0]."
";
echo $aaList[2][2]."
";
echo $aaList[0][1]."
";
echo $aaList[1][0]."
";
echo $aaList[2][3]."
";
echo $aaList[0][1]."
";
echo $aaList[1][1]."
";
echo $aaList[2][0]."
";
echo $aaList[0][1]."
";
echo $aaList[1][1]."
";
echo $aaList[2][1]."
";
echo $aaList[0][1]."
";
echo $aaList[1][1]."
";
echo $aaList[2][2]."
";
echo $aaList[0][1]."
";
echo $aaList[1][1]."
";
echo $aaList[2][3]."
";
echo $aaList[0][2]."
";
echo $aaList[1][0]."
";
echo $aaList[2][0]."
";
echo $aaList[0][2]."
";
echo $aaList[1][0]."
";
echo $aaList[2][1]."
";
echo $aaList[0][2]."
";
echo $aaList[1][0]."
";
echo $aaList[2][2]."
";
echo $aaList[0][2]."
";
echo $aaList[1][0]."
";
echo $aaList[2][3]."
";
echo $aaList[0][2]."
";
echo $aaList[1][1]."
";
echo $aaList[2][0]."
";
echo $aaList[0][2]."
";
echo $aaList[1][1]."
";
echo $aaList[2][1]."
";
echo $aaList[0][2]."
";
echo $aaList[1][1]."
";
echo $aaList[2][2]."
";
echo $aaList[0][2]."
";
echo $aaList[1][1]."
";
echo $aaList[2][3]."
";
?></pre><?





Svar nedan är gissningar från andra som också verkar ha samma feltänk som jag

Svar #1:
for ($iRow=0;$iRow < count($aaList);$iRow++)
{
for($iColumn=0;$iColumn < count($aaList[$iRow]);$iColumn++)
{
echo $aaList[$iRow][$iColumn]."
";
}
}
}


Svar #2:
$iRow=0;
for($iColumn=0;$iColumn < count($aaList[$iRow]);$iColumn++)
{
while ($iRow < count($aaList))
{
echo $aaList[$iRow][$iColumn]."
";
$iRow++;
}
$iRow=0;
}



=> Svar #2 kommer närmare än svar #1, men fortfarande en bra bit kvar.

Har du "rätt tänk" så hjälp gärna oss lägre stående varelser, för min hjärna verkar inte greppa denna loopen.
Starweb är inte uppkopplad   Svara med citatSvara med citat