@Nubbin

Автоматическая генерация номеров как в 1c?

Доброе утро, ребята как можно автоматически генерировать такие id "0000001","0000010", "0000100" ?
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
Можно взять айдишник записи, если он первичный и с автоинкрментом.

Есть функция str_pad она дополнит слева нулями число, преобразованное в строку, и вернет его

Например

$id = 15;
echo str_pad($id, 10, "0", STR_PAD_LEFT); // выведет 0000000015


Если не используются ORM модели, а используется обычная обертка для работы с бд, то получая строку, добавляйте по ключу ('id_ad_1c')
...
$row['id_ad_1c'] = str_pad($row['id'], 10, "0", STR_PAD_LEFT)
$result[] = $row
...

В любом случае, получается номерок а-ля 1с. Функцию предоставили

Если нужен генератор строки (могут быть только числовые символы)
function generateNumber($length = 10)
{
  $chars = ['0','1','2','3','4','5','6','7','8','9']; //можно дополнять и буквами
  $number = '';
  $count = count($chars);
  for($i = 0; $i < $length; $i++) {
    $number .= $chars[mt_rand(0,$count)];
  }
  return $number;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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