2014-12-03 207 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]); 
}