Я не уверен, но когда у меня print_r
массив, обе случайные сгенерированные строки одинаковы, а не разные.
$amount_of_files = 2;
$generated_file_names = array();
for($i = 0; $i < $amount_of_files; $i++){
$generated_file_names[] = substr(md5(time()), 0, 10);
}
time()
возвращает значение до ближайшей секунды - ваш код выполняется за гораздо меньшее время, чем это значит, что значение одно и то же. Если вы хотите, чтобы случайные значения для каждого элемента массива использовали вместо rand()
или mt_rand()
.
Вы можете так использовать
<?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 зацикливание soo с 0 по 2, а time()
не меняется, поэтому md5 одинаково, а sub_str одинаково для всех.