Partagez 4 façons de générer des nombres et des tableaux aléatoires non répétitifs en PHP

coldplay.xixi
Libérer: 2023-04-09 10:56:01
avant
2963 Les gens l'ont consulté

Partagez 4 façons de générer des nombres et des tableaux aléatoires non répétitifs en PHP

Écrivez quelques façons de générer des nombres aléatoires non répétitifs, allez simplement dans le code

Le code est le suivant :

<?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); }}
?>
Copier après la connexion

Allons Parlons de la quatrième méthode, c'est la méthode flip. Utilisez array_flip() pour retourner les clés et les valeurs du tableau. En utilisant la fonction de tableau PHP, les clés en double seront écrasées. À ce stade, le retournement est le même. supprimer les valeurs en double.
Les méthodes ci-dessus ne sont que des exemples simples, et certaines méthodes ont un champ d'application limité.

Examen de l'efficacité de plusieurs méthodes :

Utilisez array_unique() pour comparer les performances lorsque la baie est grande Le mauvais, bien sûr, shuffle() sera également affecté par cela.

Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal