0

数字の配列から10個の乱数を表示しようとしていますが成功しません。

これは私のコードです:

<?php
$num = array("2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009");

//echo $num[rand(0,9)];
echo '<br/>';
for ($num = 2000; $num <= 10; $num[rand(0,9)]++)
{
    echo "The number is " . $num . "<br />";
}
?>

display_errors = On私はubuntuphp.iniにありますが、スクリプトは何も表示しません。

どこが間違っているのですか?

4

6 に答える 6

3

使用するだけarray_randです:

array_rand($num, 10); // returns a new array with 10 randomly selected values.

その後、これらを次のように繰り返すことができますforeach

$rand = array_rand($num, 10);

foreach($rand as $key) {
  echo "The number is " . $num[key] . "<br />";
}
于 2012-11-13T10:26:18.717 に答える
3

shuffle代わりに関数を使用します。

<?php
$num = array("2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009");
shuffle($num);
echo '<br/>';
foreach ($num as $value)
  {
  echo "The number is " . $value . "<br />";
  }
?>
于 2012-11-13T10:29:19.083 に答える
1

shuffle()を試してください

$num= array("2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", 
  "2009");

shuffle($num);

 //echo $num[rand(0,9)];
 echo '<br/>';
 for ($i = 0; $i < count($num); $i++)
 {
  echo "The number is " . $num[$i] . "<br />";
 }
于 2012-11-13T10:29:30.730 に答える
0
    $num= array("2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009");

    for($i=0; $i<10; $i++){
        $rand = rand(0,count($num));
        echo "The number is " . $num[$rand] . "<br />";

        // unset($num[$rand]); //to get unique numbers each time .. this will unset array item after its showed
        // $num = array_values($num); //reindex after unset
    }

一意の結果のみを取得する場合に使用できる unset および array_values

于 2012-11-13T10:32:25.747 に答える
0
<?php
  $num= array("2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", 
  "2009");

 //echo $num[rand(0,9)];
 echo '<br/>';
 for ($i = 0; $i < count($num); $i++)
 {
  echo "The number is " . $num[rand(0, count($num))] . "<br />";
 }
?>
于 2012-11-13T10:28:30.517 に答える
0

からループを開始し$num = 2000、 で停止し$num <= 10ます。したがって、実行されません。

于 2012-11-13T10:27:36.827 に答える