Maison > Article > développement back-end > Comment empêcher la génération de nombres aléatoires répétés en PHP
Le contenu de cet article est de partager avec vous comment éviter les nombres aléatoires répétés en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer
1. la fonction intégrée implémente des nombres aléatoires non répétitifs
Condition : Pour générer un tableau, il y a 10 éléments dans ce tableau, tous sont des nombres entiers et ce sont des nombres aléatoires non répétitifs entre Numéro 1-60.
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); ?>
Ici, $count représente le nombre de tableaux de résultats, ce qui dans la boucle while rend le nombre de tableaux de résultats inférieur au nombre cible. De cette façon, $count est obtenu sous la forme d'un tableau du nombre cible. Pendant
, dans chaque cycle, via mt_random($min,$max), une valeur comprise dans la plage est obtenue aléatoirement, stockée dans le tableau $res, puis via deux échanges clé-valeur, c'est-à-dire Grâce au caractère unique de la clé du tableau, aucune duplication n'est garantie.
Après avoir lu le code de cette logique, je n'ai pas pu m'empêcher de réfléchir profondément. Que feriez-vous si vous le faisiez. vous ne connaissez pas la fonction array_filp ?
Pour parler franchement, il utilise le caractère unique de la clé afin qu'il n'y ait pas de duplication de nombres aléatoires. Alors pouvons-nous simplifier ce problème ?
Exemple de 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); ?>
Cela résout complètement ce problème grâce au caractère unique de la clé du tableau. array_flip ne sera pas utilisé du tout.
Résumé :
1. Parce que PHP fournit un grand nombre de fonctions intégrées, leur efficacité d'exécution est très élevée. Lorsque vous rencontrez un problème, essayez de l'utiliser pour résoudre le problème autant que possible. C'est pratique et rapide.
2. PHP fournit un grand nombre de fonctions intégrées et l'efficacité d'exécution est également très élevée. Cependant, même si l'efficacité est élevée, son exécution prend encore du temps.
Lorsque vous rencontrez un problème, ne le faites pas aveuglément. Vous pouvez d'abord comprendre l'essence de la solution afin de pouvoir la mettre en œuvre habilement.
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!