Home >Backend Development >PHP Problem >How to implement non-repeating random numbers in php range

How to implement non-repeating random numbers in php range

藏色散人
藏色散人Original
2022-10-26 09:22:451663browse

php range method to implement non-repeating random numbers: 1. "$result = array_slice($numbers,0,$num);" method; 2. "while (list(, $number) = each ( $numbers)) {...}" method; 3. "array_slice($rand_array,0,$limit);" method; 4. "range(1,30);" method.

How to implement non-repeating random numbers in php range

The operating environment of this tutorial: Windows 7 system, PHP version 8.1, Dell G3 computer.

php range How to implement non-repeating random numbers?

Several methods for PHP to generate non-repeating random numbers

Method one:

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

Method two:

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

Method three:

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

Method four:

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

Method five:

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

Recommended learning: "PHP video tutorial"

The above is the detailed content of How to implement non-repeating random numbers in php range. 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