php - 如何创建随机比特流

时间:2016-07-22 07:00:52

标签: php arrays random

如何生成以下随机数组:

array(1, 0 , 0, 1, 1, 1, 1, 0, 1, 0, 0)

length = n

当然,for解决方案始终存在。但对此有任何单行简单解决方案,例如array_fillmt_rand(0, 1)的任意组合吗?

5 个答案:

答案 0 :(得分:1)

如果需要,您可以结合使用array_maprange(或array_fill)来生成随机值。

$length = 10;
$randBits = array_map(
    function () {
        return mt_rand(0, 1);
    },
    range(0, $length - 1)
);

Working example

答案 1 :(得分:0)

将范围与mt_rand

一起使用
Array ( [0] => 0 [1] => 1 [2] => 1 [3] => 1 [4] => 0 [5] => 0 ) 

输出:

{{1}}

答案 2 :(得分:-1)

试试这个,

function randome_array($n)
{
    $array=array();
    $x = 1;
    while($x <= $n) {
    $temp = mt_rand(0,1);
        array_push($array,$temp);
        $x++;
    }
    return $array;
}
print_r(randome_array(5));

https://3v4l.org/ZSrMX

我希望它会有所帮助。

答案 3 :(得分:-2)

好吧,正如你所提到的,你可以为解决方案提供一行。

for ($i = 0; $i < count($arr); $i++) $arr[$i] = rand(0, 1);

除此之外,既然你提到array_fill,你可以简单地将它与随机函数一起使用

$arr = array_fill (0, count($arr), rand(0, 1));

答案 4 :(得分:-2)

您可以尝试使用range()

range - 创建包含一系列元素的数组

了解详情http://php.net/manual/en/function.range.php