Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为阵列中的存储生成不同的随机数_Php_Arrays - Fatal编程技术网

Php 如何为阵列中的存储生成不同的随机数

Php 如何为阵列中的存储生成不同的随机数,php,arrays,Php,Arrays,我不确定,但当我打印数组时,两个随机生成的字符串是相同的,而不是不同的 $amount_of_files = 2; $generated_file_names = array(); for($i = 0; $i < $amount_of_files; $i++){ $generated_file_names[] = substr(md5(time()), 0, 10); } $amount\u of\u文件=2; $generated_file_names=array(); 对于

我不确定,但当我打印数组时,两个随机生成的字符串是相同的,而不是不同的

$amount_of_files = 2;
$generated_file_names = array();
for($i = 0; $i < $amount_of_files; $i++){
    $generated_file_names[] = substr(md5(time()), 0, 10);
}
$amount\u of\u文件=2;
$generated_file_names=array();
对于($i=0;$i<$amount\u文件;$i++){
$generated_file_names[]=substr(md5(time()),0,10);
}
time()
将其值返回到最接近的秒-您的代码执行的时间比这短得多,因此值是相同的。如果您希望数组中的每个项目都有随机值,请使用或代替。

您可以这样使用

<?php

$amount_of_files = 2;
$generated_file_names = array();
for($i = 0; $i < $amount_of_files; $i++){
    $generated_file_names[] = substr(md5(rand()),0,10);
}

print_r($generated_file_names);

?>


您需要
microtime()
php正在快速地从0循环到2,并且
time()
没有变化,因此md5是相同的,sub_str对所有人都是相同的。

考虑到这可能每秒执行几次,并且md5每次都需要不同的值来生成不同的散列,如果它使用相同的time()值循环了几次,你会怎么想?请看这里的一些示例,感谢其他人的回答谢谢,mt_rand()工作得非常好,数组中的两个元素都不同。非常感谢。