ZetIndex_Ram
@ZetIndex_Ram

Как сгенерировать код P-XXXXXXXX, где X — числа [PHP]?

Коллеги, выручайте!

Нужно сгенерировать код, состоящий из одной буквы, затем дефиса и затем 8 цифр. (первая цифра не должна быть нулем)
Ну и соответственно перед занесением в БД я проверяю, есть ли такой код или нет.

Я с PHP не так сильно дружу, как с Javascript, на JavaScript я написал аж две функции (не могли бы вы их перевести в PHP (одну из них? ну или обе):

function generator(litera) {
return `${litera.toUpperCase()}-${new Array(8)
.fill()
.map((el, i) => Math.max(i ? 0 : 1, Math.floor(Math.random() * 10)))
.join("")}`;
}
console.log(generator("i"));


litera --> эта буква до дефиса

function generator(litera) {
const arr = [];
arr.push(1 + Math.floor(Math.random() * 9));
for (let i = 1; i < 8; i++) {
arr.push(Math.floor(Math.random() * 10));
}
return `${litera.toUpperCase()}-${arr.join("")}`;
}
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
function generator($litera) {
    return mb_strtoupper($litera)."-".random_int(10000000, 99999999);
}


for($i = 1; $i <= 5; $i++) {
    $code = generator("P");
    echo $code."\n";
}

//P-10762100
//P-85344418
//P-57088151
//P-14499009
//P-24729321
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
function code(string $letter = 'P', int $count = 8, string $delimiter = '-'): string
{
    $code = $letter . $delimiter . mt_rand(1, 9);
    for ($i = 0; $i < $count - 1; $i++) {
        $code .= mt_rand(0, 9);
    }
    return $code;
}
Ответ написан
@cannabioid1337
$code = 'P-' . random_int(00000001, 99999999);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы