PHP函数,将随机唯一数添加到与特定值匹配的数组中
我试图建立一个功能,添加5个唯一的数字,符合一定的价值 我下面的代码片段并不总是添加5个数字,它需要5个唯一的值PHP函数,将随机唯一数添加到与特定值匹配的数组中,php,Php,我试图建立一个功能,添加5个唯一的数字,符合一定的价值 我下面的代码片段并不总是添加5个数字,它需要5个唯一的值 $random = []; $val = 22;// this will be random every time $fields = 100; $total = 5; for ($i = 1; $i <= $total; $i++) { $r = rand(1,$fields); if(!in_array($r, $r
$random = [];
$val = 22;// this will be random every time
$fields = 100;
$total = 5;
for ($i = 1; $i <= $total; $i++) {
$r = rand(1,$fields);
if(!in_array($r, $random) && $r !== $val){
$random[] = $r;
}
}
return $random;
$random=[];
$val=22;//每次都是随机的
$fields=100;
$total=5;
对于($i=1;$iCreatedo…while
loop和rand,如果随机数组中已经存在值,则尽可能多次循环和rand
$random = [];
$val = 22;// this will be random every time
$fields = 100;
$total = 5;
for ($i = 1; $i <= $total; $i++) {
do {
$r = rand(1, $fields);
} while(in_array($r, $random) || $r === $val);
$random[] = $r;
}
var_dump($random);
$random=[];
$val=22;//每次都是随机的
$fields=100;
$total=5;
对于($i=1;$i来说,只需要一个带检查的单循环
就个人而言,出于传统原因,我会使用mt_rand()
而不是rand()
,但从PHP7.1.0开始,rand()
使用与mt_rand()
相同的数学
样本结果:
array(5) {
[0]=>int(56)
[1]=>int(29)
[2]=>int(96)
[3]=>int(92)
[4]=>int(79)
}
这是因为您只运行了5次循环,但不能保证在每次迭代中都添加一项。您应该创建一个循环,直到有5个结果。更改为循环。使用嵌套循环似乎有点过火。ado…while
应该足够了。
array(5) {
[0]=>int(56)
[1]=>int(29)
[2]=>int(96)
[3]=>int(92)
[4]=>int(79)
}