首页 > 解决方案 > 长数字字符串模式的逻辑,在php中添加空格

问题描述

我有字符串编号:

$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;

我想知道这个问题是否有更好的编程解决方案。由于我目前正在学习编程,因此我想请经验丰富的程序员提出意见,甚至需要一些更好的编程解决方案。

标签: phplogic

解决方案


您可以使用正则表达式模式来捕获您想要的数字计数,然后用空格将它们连接起来:

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));

推荐阅读