Maison  >  Article  >  développement back-end  >  Quelle est la méthode pour générer des nombres aléatoires non répétitifs en PHP

Quelle est la méthode pour générer des nombres aléatoires non répétitifs en PHP

coldplay.xixi
coldplay.xixioriginal
2020-11-02 14:08:522366parcourir

Comment générer des nombres aléatoires non répétitifs en PHP : mélangez d'abord l'ordre du tableau ; puis prenez une certaine section du tableau, le code est [$numbers = range (1,50);shuffle ( $numbers) ;$result = array_slice($numbers..].

Quelle est la méthode pour générer des nombres aléatoires non répétitifs en PHP

Méthode PHP pour générer des nombres aléatoires non répétitifs :

Qu'il s'agisse d'une application web, d'un WAP ou d'une application mobile, les nombres aléatoires ont leur place. Dans plusieurs petits projets auxquels j'ai été exposé récemment, j'ai souvent besoin de gérer des nombres aléatoires ou des tableaux aléatoires, donc. Je n'ai aucune idée de comment les générer en PHP. Un résumé de plusieurs méthodes couramment utilisées pour répéter des nombres aléatoires :

Première méthode :

Le code est le suivant :

<?php 
$numbers = range (1,50); 
//shuffle 将数组顺序随即打乱 
shuffle ($numbers); 
//array_slice 取该数组中的某一段 
$num=6; 
$result = array_slice($numbers,0,$num); 
print_r($result); 
?>

Méthode deux :

Le code est le suivant :

<?php 
$numbers = range (1,20); 
//播下随机数发生器种子,可有可无,测试后对结果没有影响
srand ((float)microtime()*1000000); 
shuffle ($numbers); 
//跳过list第一个值(保存的是索引)
while (list(, $number) = each ($numbers)) { 
  echo "$number "; 
} 
?>

Méthode trois :

Le code est le suivant :

<?php 
function NoRand($begin=0,$end=20,$limit=5){ 
  $rand_array=range($begin,$end); 
  shuffle($rand_array);//调用现成的数组随机排列函数 
  return array_slice($rand_array,0,$limit);//截取前$limit个 
} 
print_r(NoRand()); 
?>

Ce qui précède peut être randomisé entre 1 et 20. Générer 5 valeurs uniques

Méthode 4 :

Le le code est le suivant :

<?php 
$tmp=array(); 
while(count($tmp)<5){ 
  $tmp[]=mt_rand(1,20); 
  $tmp=array_unique($tmp); 
} 
print_r($tmp);
?>

Méthode 5 :

Le code est le suivant :

<?php 
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?>

Cela peut être plus simple que ça (ps : si la taille du pas est spécifiée dans la plage, vous devez faire attention à savoir si le deuxième paramètre de array_rand dépasse la longueur de $tmp).

Recommandations vidéo 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!

Déclaration:
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