使用数组的PHP rand解释?

时间:2014-06-18 17:55:56

标签: php

我的编程经验非常少,但我正在浏览一本php书,这段代码让我感到困惑。

如果rand生成一个随机整数,该程序如何在数组中使用ABCDEFG。 你能解释一下这个程序吗谢谢。我知道结果是什么,我只是不确定它是如何得到的。

<?php

$array = '123456789ABCDEFG';

$s = '';

    for ($i=1; $i < 50; $i++) { 
        $s.= $array[rand(0,strlen($array)-1)]; //explain please

}

echo $s;

?>

3 个答案:

答案 0 :(得分:5)

它使用数组索引,因此$array[11]等于'C'rand()需要一个范围 - 在您的示例中,从0strlen($array)-1这是字符串的长度,减去1,因为它是基于0的索引。< / p>

答案 1 :(得分:2)

将其分解为部分:

strlen($array) - returns the length of the string in $array, which would be 17
strlen($array) - 1  => 16

rand(0, 16) - generate a random number between 0 and 16

$array[$random_number] - get the $random_number'th element of the array

答案 2 :(得分:0)

它只使用strlen($array)获取数组的长度。字符串中的长度是什么并不重要。然后它生成一个介于0和字符串长度减1之间的随机数。

然后它接受数组中该位置的任何字符(因此$array[5]将为'6'$array[12]将为'C'等)并将其附加到字符串$s。然后它有一个for循环重复它50次。

您最终得到的是一个50字符长的随机字符串,其中包含数字1-9和字母A-G。