This article mainly shares with you the method of producing non-repeating random numbers in PHP, hoping to help everyone.
Requirement: To generate an array, in this array There are 10 elements, all of which are integers and non-repeating random numbers between 1 and 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); ?>
Here $count represents the number of result arrays, which in the while loop makes the number of result arrays less than the target number. Through this, we get $count which is an array of target number.
During each cycle, through mt_random($min,$max), a value within the range is randomly obtained and stored in the array $res, and then through two key-value exchanges, that is, through The uniqueness of the array key ensures no duplication.
After I read the code of this logic, I couldn’t help but fall into deep thought. What would you do if you didn’t know the array_filp function? ?
To put it bluntly, the uniqueness of the key is used to prevent duplication of random numbers. So can we simplify this problem?
Code example:
<?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); ?>
This solves this problem completely through the uniqueness of the array key. array_flip will not be used at all.
Summary:
1, because PHP provides a large number of built-in functions, their execution efficiency is very high. When you encounter a problem, try to use it to solve the problem as much as possible. This is convenient and fast.
2, PHP provides a large number of built-in functions, and the execution efficiency is also very high. However, although the efficiency is high, it still takes time to execute.
When you encounter a problem, don't do it blindly. You can first see the essence of the solution so that you can implement it skillfully.
Related recommendations:
php rand() function to generate random numbers
Five ways to generate non-repetitive random numbers in php
How to generate php random numbers from numbers and letters
The above is the detailed content of How to generate non-repeating random numbers in PHP. For more information, please follow other related articles on the PHP Chinese website!