Comment générer des numéros uniques dans une plage spécifiée en php

王林
Libérer: 2023-03-03 07:24:01
original
2396 Les gens l'ont consulté

Comment PHP génère des nombres uniques dans une plage spécifiée : générez d'abord des nombres aléatoires via la fonction mt_rand() ; puis supprimez les nombres en double via la fonction array_flip(). La fonction array_flip() est utilisée pour inverser les noms de clés dans le tableau et les valeurs de clés associées correspondantes.

Comment générer des numéros uniques dans une plage spécifiée en php

Introduction à la fonction :

(Tutoriel recommandé : tutoriel php)

Fonction mt_rand() Générez des entiers aléatoires à l'aide de l'algorithme Mersenne Twister. Un entier aléatoire compris entre min (ou 0) et max (ou mt_getrandmax()), inclus. Si max < min renvoie FALSE.

Astuce : Cette fonction est un meilleur choix pour générer des valeurs aléatoires, renvoyant des résultats 4 fois plus rapidement que la fonction rand().

La fonction array_flip() est utilisée pour inverser/échanger les noms de clés dans le tableau et les valeurs de clés associées correspondantes. Si l'inversion réussit, le tableau inversé est renvoyé. Si l'inversion échoue, NULL est renvoyé.

Implémentation du code :

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

Résultat de l'exécution du programme :

48,5,19,36,63,72,82,77,46,16
Copier après la connexion

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:
php
source:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!