带有rand()的随机数组键如何工作?

时间:2016-08-06 06:35:51

标签: php arrays random

我对这是如何工作(标题)有点困惑? 例如,我正在设置一个像这样的数组

$array[rand(0, 5)] = 'Alex';
$array[rand(0, 5)] = 'Blue';
$array[rand(0, 5)] = 'Dale';
$array[rand(0, 5)] = 'Matt';

数组的var_dump($array);之后的可能结果示例:

Array
(
    [0] => Blue
    [1] => Dale
    [2] => Matt
)

技术上会发生什么?

2 个答案:

答案 0 :(得分:0)

你的构造数组用每个值的随机键。和(0,5)意味着它取0-5之间的任何一个数字,但可能是关键覆盖问题在这里。 这是最好的例子。不止一次地运行这个,知道每个输出。你可以看到重复的键

    <?php 

    $array1[rand(0, 5)] = 'Alex'; 
    $array2[rand(0, 5)] = 'Blue'; 
    $array3[rand(0, 5)] = 'Dale'; 
    $array4[rand(0, 5)] = 'Matt'; 

    print_r($array1); 
    print_r($array2); 
    print_r($array3); 
    print_r($array4); 


    output:

    out put differ each time .here you can see the key repetation . 

        Array ( [4] => Alex ) 
        Array ( [3] => Blue ) 
        Array ( [4] => Dale ) 
        Array ( [5] => Matt ) 
    ?>

答案 1 :(得分:0)

考虑以下示例:

$array[0] = 'Alex';  //replaced  rand(0, 5) with 0
$array[3] = 'Blue';  //replaced  rand(0, 5) with 3
$array[2] = 'Dale';  //replaced  rand(0, 5) with 2
$array[4] = 'Matt';  //replaced  rand(0, 5) with 4

var_dump($array);

我们的输出如下,没有任何变化:

enter image description here

当您使用rand(0, 5)时,它会获取随机值,因此每次运行时它都会不断变化,并且您有不同的输出。

var_dump - 转储有关变量的信息

有关var_dump

的更多信息