Home >Backend Development >PHP Tutorial >Summary of methods for generating non-repeating random numbers in PHP

Summary of methods for generating non-repeating random numbers in PHP

不言
不言Original
2018-06-06 11:37:351570browse

This article mainly introduces a summary of methods for generating non-repeating random numbers in PHP. It has a certain reference value. Now I share it with you. Friends in need can refer to it.

This article summarizes 5 types of generation Methods of not repeating random numbers. Methods 1, 2, and 3 are my commonly used methods. Methods 4 and 5 come to Du Niang. There are still other methods, and everyone is welcome to tell us about the missing methods, so that we can make progress together

Whether it is a web application, a WAP or a mobile application, random numbers have their place. In several small projects that I have been exposed to recently, I often need to deal with random numbers or random arrays. Therefore, I will summarize some common methods for generating non-repeating random numbers in PHP.

Method one:

Copy code The code is as follows:

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

Method two:

Copy code The code is as follows:

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

Method three:

Copy code The code is as follows:

<?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()); 
?>

The above can randomly generate 5 non-repeating numbers between 1-20 The value

Method 4:

Copy code The code is as follows:

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

Method 5:

Copy code The code is as follows:

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

This may be simpler than calling it (ps: if the step size is specified in the range, you must pay attention to whether the second parameter of array_rand exceeds the length of $tmp).

PHP provides a very rich array function. Most random numbers can be generated from the perspective of arrays. Of course, if you have a better method, please let us know. This article can be considered as an introduction.

Related recommendations:

php generates verification code function, php generates verification code

The above is the detailed content of Summary of methods for generating non-repeating random numbers in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn