我有字符串号:
$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;
我想知道是否存在针对此问题的更好的编程解决方案。当我目前正在学习编程时,我希望有经验的程序员会认为甚至有必要提供更好的编程解决方案。
答案 0 :(得分:2)
您可以使用正则表达式模式来捕获所需的数字计数,然后用空格将它们连接起来:
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));