Home > Backend Development > PHP Tutorial > Share 4 ways to generate non-repeating random numbers and arrays in PHP, 4 types of random numbers_PHP Tutorial

Share 4 ways to generate non-repeating random numbers and arrays in PHP, 4 types of random numbers_PHP Tutorial

WBOY
Release: 2016-07-13 09:59:05
Original
916 people have browsed it

Sharing 4 ways to generate non-repeating random numbers and arrays in PHP, 4 types of random numbers

Write down several methods to generate non-repeating random numbers, just go to the code

Copy code The code is as follows:
define('RANDOM_MAX', 100);
define('COUNT', 10);

echo 'max random num: '.RANDOM_MAX, ' ;result count:'.COUNT, '
';

invoke_entry('rand1');
invoke_entry('rand2');
invoke_entry('rand3');
invoke_entry('rand4');

function invoke_entry($func_name) {
$time = new time();
$time->time_start();
call_user_func($func_name);
echo $func_name.' time spend: ', $time->time_spend();
echo '
';
}
function rand1() {
$numbers = range (1, RANDOM_MAX);
shuffle($numbers); //Shuffle the array randomly
$result = array_slice($numbers, 1, COUNT);
return $result;
}
function rand2() {
$result = array();
while(count($result)< COUNT) {
$result[] = mt_rand(1, RANDOM_MAX); //mt_rand() is a better and faster random function than rand()
$result = array_unique($result); //Delete duplicate elements in the array
}
return $result;
}
function rand3() {
$result = array();
while(count($result) < COUNT) {
$_tmp = mt_rand(1, RANDOM_MAX);
if(!in_array($_tmp, $result)) { //Insertion
is only allowed when the same element does not exist in the array $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 exchanges the key and value of the array
}
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);
}
}


?>

Let’s talk about the fourth method, which is the flip method. Use array_flip() to flip the keys and values ​​​​of the array. Using the PHP array feature, the repeated keys will be overwritten. At this time, flipping again is the same as removing them. Duplicate values.
The above methods are just simple examples, and some methods have limited scope of application.

Looking at the efficiency of several methods:

The performance of using array_unique() is poor when the array is large. Of course, shuffle() will also be affected by this.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/976033.htmlTechArticleSharing 4 ways to generate non-repeating random numbers and arrays in PHP. Below are 4 types of random numbers. Here are some ways to generate non-repeating random numbers. To repeat the random number method, go directly to the code and copy the code as follows: php define(...
Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template