使用For循环输出数组中的名称?

时间:2014-12-03 16:45:39

标签: php arrays for-loop random count

我需要你的帮助。所以我在codecademy学习,我有这样的练习:

  

在我们的游戏中,我们会列出我们最亲密的家人和朋友的名单并进行抽奖。   我们将"旋转车轮"并从列表中随机选择我们的一个家人和朋友。   创建一个数组(),其中包含您最亲密的家人和朋友的名字。   阵列中的名字越多,你的游戏就越有趣!

     

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

     

如果您有获奖名称,请将其打印到屏幕上,这样每个人都知道获胜者有多棒。

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

   <?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]);    

?>
  

但我想通过循环来做,就像这样:

<?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 ??? !!!

1 个答案:

答案 0 :(得分: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]);
}