2014-12-03 32 views
0

我需要你的帮助。所以我在学习Codecademy网站和我有这样的练习:使用For循环来输出数组中的名称?

在我们的游戏中,我们将做我们最亲密的家人和朋友的列表,并有抽奖。 我们将“旋转轮子”,并从列表中随机选择我们的家人和朋友之一。 用你最亲密的家人和朋友的名字创建一个数组()。 阵列中的名称越多,游戏的乐趣就越多!

创建完列表后,对其进行排序并从列表中随机选择一个名称。

当你有你的获奖名字时,将它打印在屏幕上,以便大家都知道获胜者是多么的棒。

所以这是可以做到的第一种方式,是这样的,它是正确的:

<?php 
$fam=array(); 
array_push($fam,"Alla"); 
array_push($fam,"Serega"); 
array_push($fam,"Anna"); 
array_push($fam,"Alla"); 
array_push($fam,"Sonia"); 
sort($fam); 
$num=count($fam); 

$rand=rand(0,$num-1); 

print strtoupper($fam[$rand]);  

?> 

但我想这样做,通过对LOOP,像这样:

<?php 
    $fam=array(); 
    array_push($fam,"Alla"); 
    array_push($fam,"Serega"); 
    array_push($fam,"Anna"); 
    array_push($fam,"Alla"); 
    array_push($fam,"Sonia"); 
    sort($fam); 
    $num=count($fam); 


    for($i=0;$i<$num;$i++){ 

     $fam[$i]=rand(0,5); 
     print strtoupper($fam[$i]); 
     break; 
     } 

    ?> 

在for循环中输出随机数的问题,但 不是数组$ fam中的随机名称!如何正确使用FOR LOOP ??? !!!

+0

究竟是for循环应该怎么做? – ofrommel 2014-12-03 16:49:07

+0

我不确定你为什么使用'break;'。如果你想打印一个名字,那么不需要使用循环。 – MH2K9 2014-12-03 16:55:00

+0

对不起,我只是误解了一些简单的东西,谢谢你的帮助! – PERIMETER 2014-12-04 12:29:47

回答

0

您重置名称:

$fam[$i]=rand(0,5); // <= HERE YOU SET NEW VALUE FOR i-th ARRAY ELEMENT 
print strtoupper($fam[$i]); 

来完成你想要什么,你需要shuffle您的数组:

shuffle($fam); 
for($i=0;$i<$num;$i++){ 
    print strtoupper($fam[$i]); 
}