繁体   English   中英

PHP Rand()无法正常工作会导致不同的rand()变量。

[英]PHP Rand() not working same result in different rand () variables..

我有以下代码:

$im = glob($directory . "*.html");
$last = end($im );
$hongi= rand(2, $last);

这是行不通的,因为rand()期望参数2起作用,并且此参数是一个字符串。

是否有可能使rand()与可变参数一起使用?

在此先感谢您的帮助。

编辑:

更好地解释以下代码:

我有数千个文件,每个文件名都是一个数字。

我将这些文件的名称提取到数组中。

我使用end()获得了最后一个值。

使用$ hongi获取介于“ 2”和数组最后一个值之间的随机值。

因此,随机值将永远不会超过数组的最后一个值。

我有一个非常基本的错误,因为我得到了这样的文件路径:

../motor/sector1/1700140030012011011111900.html ../motor/sector1/17001400300120110111920.html ../motor/sector1/17001400300120110111111930.html ../motor/sector1/17001400300120110111950.html

所以我这样做

$im = glob($directory . "*.html");
$last = end($im );
$numl = substr($last,24,-5);
$hongi= rand(2, $num1);

没关系,但是我要这样做:

 $hongi= rand(2, $num1);
 $hongi1= rand(2,$num1);
 $hongi2= rand(2, $num1);
$hongi3= rand(2, $num1);
 $hongi4= rand(2, $num1);

但是所有“ hongi”变量都是相同的结果。 为什么?

如果希望使用字符串进行随机选择,则需要将它们放入数组中并进行数组随机播放。

shuffle($array_of_filenames);
echo $array_of_filenames[0];  

更多示例: http : //php.net/manual/en/function.shuffle.php

类型转换可以帮助:

$hongi= rand(2, (int)$last);

如果要获取随机文件名,首先,您使用的rand()错误。 在最小和最大之间取2个整数。 您为max提供的值是文件路径,而不是整数。 您需要$ im的count() ,并使用它:

$im = glob($directory . "*.html");
$last = count($im);
$hongi= rand(2, $last - 1); // -1 because arrays start at 0
$random_file = $im[$hongi];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM