2012-12-17 169 views
0

試圖找出一個體面的方式來獲得多個while循環正常工作。多個while循環?

我一直使用的是:

$x = "0"; 
$y = "0"; 

while($x <= "7"){ 

while($y <= "7"){ 

echo $x . "-" . $y ."<br />"; 

$y++; 
} 
$x++; 
} 

試圖得到這顯示:

1-1 1-2 1-3 ... 1-7 2 -1 2-2

任何人都可以親提供一個快速片段?

+0

通常你會使用for循環進行迭代。 –

+0

你應該最有可能使用for循環! – PhearOfRayne

回答

3

你需要退出while循環後重置Y:

$x = "0"; 
$y = "0"; 

while($x <= "7"){ 

    while($y <= "7"){ 

     echo $x . "-" . $y ."<br />"; 

     $y++; 
    } 

    $y = "1"; 
    $x++; 
} 
1

你應該初始化$y 1第一while循環中。

$x = "0"; 


while($x <= "7") { 
    $y = "1"; 
    while($y <= "7"){ 
     echo $x . "-" . $y ."<br />"; 
     $y++; 
    } 
    $x++; 
} 

更好的方法是使用for循環來做到這一點。

for ($x=1; $x<=7; $x++) { 
    for ($y=1; $y<=7; $y++) { 
     echo $x . "-" . $y ."<br />"; 
    } 
} 
+0

對於實際的作品,效果會更好100%,因爲我在其中添加了第三層。 我會在6分鐘內接受你的答案。 你知道如何限制它嗎?例如,如果z = 3,我想y和x的限制是8. 所以它會顯示3-8-8,然後從4-0-0開始。 – Velkyr

+0

只需修改for循環中的條件語句即可。 'for($ x = 1; $ x <= 3; $ x ++)'。要添加第三層,只需在第二個'for'循環中添加另一個'for'循環。 [演示](http://codepad.org/Pr1Lt5eb) – Stanley