Teilen Sie 4 Möglichkeiten, sich nicht wiederholende Zufallszahlen und Arrays in PHP zu generieren

coldplay.xixi
Freigeben: 2023-04-09 10:56:01
nach vorne
2963 Leute haben es durchsucht

Teilen Sie 4 Möglichkeiten, sich nicht wiederholende Zufallszahlen und Arrays in PHP zu generieren

Schreiben Sie ein paar Möglichkeiten auf, um sich nicht wiederholende Zufallszahlen zu generieren. Gehen Sie einfach zum Code

Der Code lautet wie folgt:

<?phpdefine(&#39;RANDOM_MAX&#39;, 100);define(&#39;COUNT&#39;, 10);
echo &#39;max random num: &#39;.RANDOM_MAX, &#39; ;result count:&#39;.COUNT, &#39;<br/>&#39;;
invoke_entry(&#39;rand1&#39;);invoke_entry(&#39;rand2&#39;);invoke_entry(&#39;rand3&#39;);invoke_entry(&#39;rand4&#39;);
function invoke_entry($func_name) { $time = new time(); $time->time_start(); call_user_func($func_name); echo $func_name.&#39; time spend: &#39;, $time->time_spend(); echo &#39;<br/>&#39;;}function rand1() { $numbers = range (1, RANDOM_MAX); shuffle($numbers); //随机打乱数组 $result = array_slice($numbers, 1, COUNT); return $result;}function rand2() { $result = array();  while(count($result)< COUNT) {  $result[] = mt_rand(1, RANDOM_MAX); //mt_rand()是比rand()更好更快的随机函数  $result = array_unique($result); //删除数组中重复的元素 } return $result;}function rand3() { $result = array();    while(count($result) < COUNT) {  $_tmp = mt_rand(1, RANDOM_MAX);  if(!in_array($_tmp, $result)) { //当数组中不存在相同的元素时,才允许插入   $result[] = $_tmp;  } }    return $result;}function rand4() { $result = array(); while (count($result) < COUNT) {  $result[] = mt_rand(1, RANDOM_MAX);  $result = array_flip(array_flip($result)); //array_flip将数组的key和value交换 } return $result;}class time { private $_start;  public function time_start() {  $this->_start = $this->microtime_float(); } public function time_spend() {  return $this->microtime_float() - $this->_start; } private function microtime_float() {  list($usec, $sec) = explode(" ", microtime());  return ((float)$usec + (float)$sec); }}
?>
Nach dem Login kopieren

Lass uns Sprechen Sie über die vierte Methode. Verwenden Sie array_flip(), um die Schlüssel und Werte des Arrays umzudrehen. Zu diesem Zeitpunkt werden die doppelten Schlüssel genauso umgedreht Entfernen der doppelten Werte.
Die oben genannten Methoden sind nur einfache Beispiele und einige Methoden haben einen begrenzten Anwendungsbereich.

Betrachtung der Effizienz mehrerer Methoden:

Verwenden Sie array_unique(), um die Leistung zu vergleichen, wenn das Array groß ist Schlimm, natürlich wird shuffle() auch davon betroffen sein.

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonTeilen Sie 4 Möglichkeiten, sich nicht wiederholende Zufallszahlen und Arrays in PHP zu generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage