如果在PHP

时间:2017-03-22 14:47:12

标签: php arrays random

我有这个循环:

for ($i = 0; $i < 9; $i++) {
    $random_number = rand(1, 9);

    if (!in_array($section_one, $random_number)) {
        array_push($section_one, rand(1, 9));
    }
}

正如您所看到的,循环中的if语句检查生成的随机数是否已经在名为$ section_one的数组中。问题是如果数组中的随机数,则应生成一个新的随机数。这样做很容易,但它必须不断重新生成一个随机数,直到生成一个唯一的数字。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

$run = true;
$max = 9;
$section_one = [];

while ($run) {
    $rand = rand(1,$max);
    if(!in_array($rand, $section_one)){
        array_push($section_one, $rand);   
    }
    if(count($section_one) >= $max) $run =  false;
}

这个想法正在循环,直到$section_one获得完整的唯一数字。

答案 1 :(得分:-1)

试试这个:

$section_one = array();
for ($i = 0; $i < 9; $i++) {
    $random_number = rand(1, 9);

    if (!in_array($random_number,$section_one)) {
        array_push($section_one, $random_number);
    }
}
var_dump($section_one);