Arrays PHP-生成一个随机的5位数,数组中有一个例外
我想为一个文件名生成一个随机的5位数字,但有一个例外Arrays PHP-生成一个随机的5位数,数组中有一个例外,arrays,exception,random,numbers,generator,Arrays,Exception,Random,Numbers,Generator,我想为一个文件名生成一个随机的5位数字,但有一个例外 如果PHP将生成例如数字65,则我希望设置为00065(仅5位)。 我有一个数组,其中包含生成器的异常: $uploaded_files=array(0017849856132183020004 01585) 数组中有已经存在的文件名,数字生成器非常重要,可以省略它们,以避免可能的错误。 谢谢。试试这个: //create a rand_value initially while(in_array($rand_value, $uploaded
如果PHP将生成例如数字65,则我希望设置为00065(仅5位)。
我有一个数组,其中包含生成器的异常:
$uploaded_files=array(0017849856132183020004 01585)代码>
数组中有已经存在的文件名,数字生成器非常重要,可以省略它们,以避免可能的错误。
谢谢。试试这个:
//create a rand_value initially
while(in_array($rand_value, $uploaded_files) {
$rand_value = rand(0, 99999);
$rand_value = sprintf("%05s", $rand_value);
}
请考虑不要这样做,尤其是在或中有您的语言版本的控制盘时。也就是说:
/**
* Get random number outside an exception list
*
* @param array $exception Exception list
*/
function getRandom($exception=array('00001', '00002', '00003', '00004', '00005')) {
$rand=str_pad(mt_rand(0,10),5,0,STR_PAD_LEFT);
if(in_array($rand,$exception))return getRandom($exception);
return $rand;
}
var_dump(
getRandom(),
getRandom(),
getRandom(),
getRandom(),
getRandom(),
getRandom()
);
请注意,这种实现在冲突中可能会非常昂贵,特别是在异常列表增长的情况下。
如果PHP inin_array
将生成一个rand并检查数组中的成员,我该怎么办?请检查代码。你重新发明了轮子,让我笑了,但你是对的。谢谢你的getRandom函数!!