Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何返回随机键数组?_Php_Loops - Fatal编程技术网

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