Heim  >  Artikel  >  Backend-Entwicklung  >  So generieren Sie in PHP eindeutige Zahlen innerhalb eines bestimmten Bereichs

So generieren Sie in PHP eindeutige Zahlen innerhalb eines bestimmten Bereichs

王林
王林Original
2020-07-23 15:58:092420Durchsuche

So generiert PHP eindeutige Zahlen innerhalb eines bestimmten Bereichs: Generieren Sie zuerst Zufallszahlen mit der Funktion mt_rand() und entfernen Sie dann doppelte Zahlen mit der Funktion array_flip(). Die Funktion array_flip() wird verwendet, um die Schlüsselnamen im Array und die entsprechenden zugehörigen Schlüsselwerte umzukehren.

So generieren Sie in PHP eindeutige Zahlen innerhalb eines bestimmten Bereichs

Funktionseinführung:

(Empfohlenes Tutorial: php-Tutorial)

mt_rand()-Funktion Generieren Sie zufällige ganze Zahlen mit dem Mersenne Twister-Algorithmus. Eine zufällige Ganzzahl zwischen min (oder 0) und max (oder mt_getrandmax()), einschließlich. Wenn max < min, wird FALSE zurückgegeben.

Tipp: Diese Funktion ist eine bessere Wahl zum Generieren von Zufallswerten und liefert viermal schneller Ergebnisse als die Funktion rand().

Die Funktion array_flip() wird verwendet, um die Schlüsselnamen im Array und die entsprechenden zugehörigen Schlüsselwerte umzukehren/austauschen. Wenn die Umkehrung erfolgreich ist, wird das umgekehrte Array zurückgegeben. Wenn die Umkehrung fehlschlägt, wird NULL zurückgegeben.

Code-Implementierung:

<?php
/*
* array unique_rand( int $min, int $max, int $num )
* 生成一定数量的不重复随机数,指定的范围内整数的数量必须
* 比要生成的随机数数量大
* $min 和 $max: 指定随机数的范围
* $num: 指定生成数量
*/
function unique_rand($min, $max, $num) {
  $count = 0;
  $return = array();
  while ($count < $num) {
    $return[] = mt_rand($min, $max);
    $return = array_flip(array_flip($return));
    $count = count($return);
  }
  //打乱数组,重新赋予数组新的下标
  shuffle($return);
  return $return;
}

//生成10个1到100范围内的不重复随机数
$arr = unique_rand(1, 100, 10);
echo implode($arr, ",");
?>

Ergebnis der Programmausführung:

48,5,19,36,63,72,82,77,46,16

Das obige ist der detaillierte Inhalt vonSo generieren Sie in PHP eindeutige Zahlen innerhalb eines bestimmten Bereichs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn