создание группы номеров aleatorios, что есть unico
Существует uniqid для создания группы unico символов, но эта функция использует буквы и цифры. И googled, но не нашел ничего ты, только цифры. Кто-нибудь знает, каким-то образом это осуществить?
3 answers
, Все зависит от того, что вы имеете в виду с "уникальными" и, что он будет делать с этими числами. В начало, uniqid() возвращает значения в hex, который вы можете преобразовать в десятичные:
$uid = hexdec(uniqid());
Другое решение, то будет так:
$digitos = '0123456789';
$tamanho = 16; // por exemplo...
$uid = '';
for ($i = 0; $i < $tamanho; $i++) {
$uid .= $digitos[rand(0, strlen($digitos) - 1)];
}
(Решение, основанное в этом коде)
Результатом будет строка с цифрой в произвольном 16 цифр), например.
Вы можете использовать microtime
Microtime - Возвращает метку времени Unix с микросекундах
В зависимости от цели, может быть, простой, жизнеспособная альтернатива с низким риском столкновения.
echo microtime();
0.97959400 1407273578
Вы можете удалить . и пространство
Просто пойти в том числе чисел в массив, проверяя раньше, если уже не существует в нем.
$sorteados = array();
for($i = 0; $i <= 1000; ++$i) {
do {
$nr = rand(1000,10000);
} while (in_array($nr,$sorteados));
$sorteados[] = $nr;
}
print_r($sorteados);