Php 如何返回随机键数组?
让我问你如何将任意三个不同于数组中其他数字的随机数返回到数组中Php 如何返回随机键数组?,php,loops,Php,Loops,让我问你如何将任意三个不同于数组中其他数字的随机数返回到数组中 $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 } } $checkrandom=数组
$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
}
}
$checkrandom=数组(1,2,3,4);
对于($i=0;$i而不是猜测数字并在它们不存在时添加它们,这将创建剩余数字的数组(使用range()
和array\u diff()
)的组合)。然后它从该数组中选择数字(使用shuffle()
和array\u 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);
你能在最后说明一下你希望得到什么吗?再解释一下,恐怕我不明白。我想说最简单的解决办法是将转换为($I=0;$I)你需要清楚地说明你想要什么,这样才能提供帮助。为什么你不洗牌($checkrandom)你的数据呢?你真的只需要洗牌一次,然后洗牌三次。
$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);