список случайных строк в php - PullRequest
2 голосов
/ 17 февраля 2012

Я хочу сгенерировать случайную строку на основе количества продуктов, которые у меня есть.Например, у меня есть 100 продуктов с именем «test», я хочу иметь возможность генерировать 100 кодов продуктов, которые будут уникальными.

В настоящее время я использую этот код:

<?php   
/**
* The letter l (lowercase L) and the number 1
* have been removed, as they can be mistaken
* for each other.
*/

function createRandomPassword() {
    $chars = "abcdefghijkmnopqrstuvwxyz023456789";
    srand((double)microtime()*1000000);
    $i = 0;
    $pass = '' ;
    while ($i <= 7) {
        $num = rand() % 33;
        $tmp = substr($chars, $num, 1);
        $pass = $pass . $tmp;
        $i++;
    }
    return $pass;
}
// Usage
$password = createRandomPassword();
echo "Your random password is: $password";
?>

Cheers

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Используя вашу функцию, вы можете сгенерировать 100 случайных строк, т.е.

$product_names = array ();
for ($i=0; $i < 10; $i++ )
  $product_names[] = "code-" . createRandomPassword();

print_r ( $product_names );

Ваш вопрос не ясен, хотя. Есть ли у вас соглашение об именах, которому вы хотите следовать, хотите ли вы генерировать коды в шаблоне, такие как «product1», «product2», ..., «product100» и т. Д.?

РЕДАКТИРОВАТЬ: код выше создает следующий вывод:

Array
(
    [0] => code-opt6ggji
    [1] => code-4qfjt653
    [2] => code-8ky4xxo0
    [3] => code-dfip2o5x
    [4] => code-3e3irymv
    [5] => code-dgqk0rzt
    [6] => code-3fbeq0gr
    [7] => code-tev7fbwo
    [8] => code-idg04mdm
    [9] => code-8c2uuvsj
)
1 голос
/ 18 февраля 2012

Уже есть встроенная функция, которая будет обрабатывать это для вас тривиально. uniqid генерирует уникальный идентификатор с префиксом на основе текущего времени в микросекундах.

http://php.net/manual/en/function.uniqid.php

<?php
// loop 100 times
for ($i=0; $i<100; $i++)
{
  // print the uniqid based on 'test'
  echo uniqid('test', true);
}
?>

Стоит отметить, что для обеспечения истинной уникальности вам необходимо хранить все сгенерированные коды и проверять, чтобы дубликаты не выдавались.

...