Как сгенерировать другое случайное число для хранения в массиве

0

Я не уверен, но когда у меня 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);
}
  • 1
    Учитывая, что это, вероятно, будет выполняться несколько раз в секунду, а md5 каждый раз требует разного значения для генерации другого хэша, что вы ожидаете, если он будет повторяться несколько раз с одним и тем же значением time ()?
  • 1
    Смотрите некоторые примеры здесь php.net/microtime
Показать ещё 1 комментарий
Теги:
arrays

3 ответа

0
Лучший ответ

time() возвращает значение до ближайшей секунды - ваш код выполняется за гораздо меньшее время, чем это значит, что значение одно и то же. Если вы хотите, чтобы случайные значения для каждого элемента массива использовали вместо rand() или mt_rand().

  • 0
    Спасибо, mt_rand () работает отлично, оба элемента в массиве разные. Спасибо
0

Вы можете так использовать

<?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);

?>
0

вам нужно microtime() php зацикливание soo с 0 по 2, а time() не меняется, поэтому md5 одинаково, а sub_str одинаково для всех.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню