簡體   English   中英

如果PHP中不滿足特定條件,則在for循環中重新生成隨機數

[英]Regenerate random number in for loop if a certain condition isn't met in PHP

我有這個循環:

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的數組中。 的問題是,如果隨機數陣列中,應生成一個新的隨機數。 做到這一點很容易,但是必須不斷重新生成一個隨機數,直到生成唯一的數為止。

我怎樣才能做到這一點?

$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獲得完整的唯一數字。

嘗試這個:

$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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM