让我问您如何将与数组中其他数字不同的任意三个随机数返回到数组中。
$checkrandom=array(1,2,3,4);
for($i=0;$i<3;$i++){
$random=RAND(1,10);
if(!in_array($random,$checkrandom)){
array_push($checkrandom,$random);
}else{
//do something
}
}
答案 0 :(得分:3)
而不是猜测数字并添加它们(如果尚不存在),而是创建剩余数字的数组(使用range()
和array_diff()
的组合)。然后,它从该数组中选取数字(使用shuffle()
和array_shift()
),并将其添加到$checkrandom
的末尾。
$checkrandom=array(1,2,3,4);
$numbers = array_diff(range(1,10), $checkrandom);
for($i=0;$i<3;$i++){
shuffle($numbers);
$checkrandom[]=array_shift($numbers);
}
print_r($checkrandom);
或者,正如deceze指出的那样,只需将剩下的数组改组并使用array_slice()
提取前三个数字...
$checkrandom=array(1,2,3,4);
$numbers = array_diff(range(1,10), $checkrandom);
shuffle($numbers);
$checkrandom = array_merge($checkrandom, array_slice($numbers, 0, 3));
print_r($checkrandom);