Логика для шаблона длинных чисел, с добавлением пробелов в php - PullRequest
2 голосов
/ 22 марта 2019

У меня есть номер строки:

$number = "101011004113511113";

И мне нужно преобразовать это в формат как:

$pattern = "10 101 1004 1135 11113";

Мне удалось с этим кодом:

<?php

    $number = "101011004113511113";

    $pattern = "10 101 1004 1135 11113";

    $newNumber = "";

    for ($i = 0; $i < strlen($number); $i++)
    {
        if ($i == 2)
        {
            $newNumber .= " ";
        }

        if ($i == 5)
        {
            $newNumber .= " ";
        }

        if ($i == 9)
        {
            $newNumber .= " ";
        }

        if ($i == 13)
        {
            $newNumber .= " ";
        }

        $newNumber .= $number[$i];
    }

    echo $newNumber;

Я хотел бы знать, есть ли лучшее решение для программирования этой проблемы. Поскольку я в настоящее время изучаю программирование, мне хотелось бы узнать мнение опытного программиста, может быть, нужно какое-то лучшее решение для программирования.

1 Ответ

2 голосов
/ 22 марта 2019

Вы можете использовать шаблон регулярных выражений, чтобы захватить количество нужных вам чисел, а затем соединить их пробелом:

preg_match('/(\d{2})(\d{3})(\d{4})(\d{5})/',$number, $result);
$result = implode(' ', array_slice($result, 1));

Это только второй вопрос, где я могу использовать vsprintf:

$result = vsprintf("%d%d %d%d%d %d%d%d%d %d%d%d%d%d", str_split($number));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...