php - 长数字字符串模式的逻辑,在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;
我想知道这个问题是否有更好的编程解决方案。由于我目前正在学习编程,因此我想请经验丰富的程序员提出意见,甚至需要一些更好的编程解决方案。
解决方案
您可以使用正则表达式模式来捕获您想要的数字计数,然后用空格将它们连接起来:
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));
推荐阅读
- javascript - Lodash 设置整数路径奇怪的行为
- java - Jenetics:如何解释并得到染色体的结果?
- c - 如何在 C 编程中生成具有特定区域附加特定数字的矩阵?
- azure-cognitive-search - ComplexType:根据内部数据分析进行查询
- android - 更新通知操作的正确方法
- python - 我应该如何为 CBC 代码实现初始化向量?
- python - 每次我需要使用它时定义一个函数python
- api - 如果删除过滤视图没有要删除的内容,则调用创建过滤视图函数
- python - 如何防止 mypy 对 kwargs 生气?
- c++ - 得到两个向量旋转得到一个向量方向