2012-12-17 134 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