首頁 >後端開發 >PHP問題 >php如何建立隨機不重複的數字數組

php如何建立隨機不重複的數字數組

PHPz
PHPz原創
2023-04-18 14:10:43811瀏覽

PHP是一種廣泛使用的伺服器端腳本語言,它在開發網頁應用程式時被廣泛使用。一個常見的任務是創建隨機不重複的數字數組。本文將向您展示如何使用PHP建立這樣的陣列。

在此之前,需要先了解三個函數:rand(),array_push(), 和in_array()。 rand()函數用於產生偽隨機數,array_push()函數用於將元素添加到數組末尾,in_array()函數用於檢查元素是否已經存在於數組中。

下面是一個創建隨機不重複數字數組的兩個方法:

方法一:使用while迴圈和in_array()函數

首先,建立一個空數組來容納產生的數字。然後使用while循環來產生數字,並將每個數字添加到數組中。但是在將數字加入陣列之前,用in_array()函數檢查它是否已經存在於陣列中。如果數字已經存在,則循環繼續產生新的數字,直到一個新的數字被找到。

以下是使用while迴圈和in_array()函數建立隨機不重複數字陣列的範例程式碼:

$numbers = array();
while (count($numbers) < 10) {
  $rand = rand(1, 20);
  if (!in_array($rand, $numbers)) {
    array_push($numbers, $rand);
  }
}
print_r($numbers);

在這個範例中,我們建立了一個包含10個元素的陣列。在每一次循環中,我們使用rand()函數產生1-20之間的偽隨機數,並使用in_array()函數檢查它是否已經存在於數組中。如果沒有,我們使用array_push()函數將數字加到陣列末尾。當陣列的長度達到10個時,循環終止,並列印數組的內容。

方法二:使用for迴圈和shuffle()函數

第二種方法是使用for迴圈產生一系列數字,並使用shuffle()函數將它們打亂。在這個範例中,我們使用range()函數產生一個包含一系列數字的數組,然後使用shuffle()函數將數組中的元素打亂。這個方法不需要使用in_array()函數,因為在初始陣列中沒有重複的數字。

以下是使用for迴圈和shuffle()函數建立隨機不重複數字數組的範例程式碼:

$numbers = range(1, 20);
shuffle($numbers);
$numbers = array_slice($numbers, 0, 10);
print_r($numbers);

在這個範例中,我們使用range()函數產生1-20之間的數字數組。然後使用shuffle()函數將數組中的元素打亂。最後,我們使用array_slice()函數從數組中選擇前10個元素作為隨機不重複數字數組,並列印數組的內容。

總結

本文展示了兩種使用PHP建立隨機不重複數字陣列的方法。第一種方法在while迴圈中使用in_array()函數檢查數字是否已經存在於陣列中,並將不重複的數字加入陣列。第二種方法使用for迴圈產生一系列數字後,使用shuffle()函數打亂數字順序,並從陣列中選擇前10個元素作為隨機不重複數字數組。這兩種方法都可以實現隨機產生不重複數字的目的,具體使用哪一種方法取決於您的個人喜好以及應用程式的要求。

以上是php如何建立隨機不重複的數字數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn