Prämisse:
Heute habe ich einen Beitrag gesehen, in dem jemand ein Array generieren wollte. Es gibt 10 Elemente in diesem Array, alle sind Ganzzahlen und es sind sich nicht wiederholende Zufallszahlen zwischen 1 und 60.
Natürlich ist diese Frage nicht schwierig! Unten finden Sie die Antwort aus der Forumsantwort.
Code:
PHP-Code
<?php function get_randoms($min,$max,$num){ $count = 0; $res = array(); while($count<$num){ $res[] = mt_random($min,$max); $res = array_flip(array_flip($res)); $count = count($res); } return $res; } $result = get_randoms(1,60,10); ?>
Hier verwendet er $count, um die Anzahl der Arrays zu ermitteln, und er ist dabei Die While-Schleife macht die Anzahl der Ergebnisarrays kleiner als die Zielanzahl. Auf diese Weise wird $count als Array der Zielzahl erhalten.
Während jedes Zyklus wird durch mt_random($min,$max) ein Wert innerhalb des Bereichs zufällig abgerufen und im Array $res gespeichert, und dann durch zwei Schlüssel-Wert-Austausche, also durch den Array-Schlüssel Uniqueness stellt sicher, dass es nicht zu Duplikaten kommt.
Nachdem ich den Code dieser Logik gelesen hatte, musste ich tief nachdenken. Was würden Sie tun, wenn Sie die Funktion array_filp nicht kennen würden?
Um es ganz klar auszudrücken: Es nutzt die Einzigartigkeit des Schlüssels, sodass es nicht zu einer Duplizierung von Zufallszahlen kommt. Können wir dieses Problem also vereinfachen?
Code:
PHP-Code
<?php function get_randoms($min,$max,$num){ $count = 0; $res = array(); while($count<$num){ $key = mt_random($min,$max); $res[$key] = $key; $count = count($res); } return $res; } $result = get_randoms(1,60,10); ?>
Auf diese Weise haben wir es vollständig durch die Einzigartigkeit des Array-Schlüssels gelöst Diese Frage. Array_flip wird überhaupt nicht verwendet.
Durch das oben Gesagte habe ich zwei Punkte vorgebracht.
1: Da PHP uns eine große Anzahl integrierter Funktionen bietet, ist ihre Ausführungseffizienz sehr hoch. Wenn wir auf ein Problem stoßen, versuchen wir unser Bestes, es zur Lösung des Problems zu nutzen. Das ist bequem und schnell. Deshalb arbeiten und lernen wir in unserer täglichen Arbeit, sammeln so viele PHP-Funktionen wie möglich und verstehen sie tiefgreifend.
2: Obwohl PHP uns eine große Anzahl integrierter Funktionen bietet und die Ausführungseffizienz ebenfalls sehr hoch ist, möchte ich darauf hinweisen, dass die Ausführung zwar hoch ist, aber dennoch Zeit in Anspruch nimmt. Wenn wir auf ein Problem stoßen, sollten wir es nicht blindlings tun. Wir können zunächst die Essenz der Lösung verstehen, um sie geschickt umsetzen zu können.