@lunsy
СНГшный "программист"

Как в php разбить 12ти-значное число на определенные блоки?

У меня есть 12ти-значное число которое состоит из : первые 3 числа означают код учреждение, т.е. в основном число статичное + 3 числа (т.е. следующие 3 числа) означает код сотрудника, тоже почти статичное + 2 числа уникальное число (самое изменчивое), т.е. число которое на 1 единицу становится больше предыдущей записи и она же может писаться как 01, 02 и тд, + 4 числа (последние, тоже иногда меняются) текущий год, и год формируется если месяц в диапазоне (7-12) то прибавляем один (+1), если же (1-6) месяца то год остается таким же каким был.
По собрать их из php я могу. Ну вот наоборот, т.е. получит 12ти значное целое число из БД в php и разделить, то ума не приложу как его разбить на эти блоки.
Вопрос: Есть ли функция в php или подскажите код который может это сделать?
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 3
sergiks
@sergiks Куратор тега PHP
♬♬
Есть специально для этого в PHP функция sscanf() – разбирает строку по формату.

$str = "111222772019"; // строка из БД

list($unit, $employee, $serial, $year) = sscanf($str, "%3d%3d%2d%4d");
// 3 цифры, 3 цифры, 2 цифры, 4 цифры

printf("Unit: %d, man: %d, id: %d, year: %d<br/>", $unit, $employee, $serial, $year);
// Unit: 111, man: 222, id: 77, year: 2019
Ответ написан
Комментировать
uDenX
@uDenX
PHP Developer
Регулярка?

Что то типа того: (?'test'\d{3})(?'test_2'\d{3})
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы