[英]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.