如何拆分此字符串:
56A19E6D77828
格式如下:
56A1 9E6D 7782 8
是否有为此构建的本机PHP函数?
答案 0 :(得分:6)
答案 1 :(得分:0)
对于您的示例输入,可以通过一个函数调用和完成此任务,而无需生成临时数组。
$string = '56A19E6D77828';
var_export(preg_replace('~.{4}\K~', ' ', $string)); // '56A1 9E6D 7782 8'
如果在字符串长度为四分之一的情况下需要小心不要添加额外的尾随空格,则只需检查您是否尚未到达字符串锚点的末尾即可。
$string = '56A19E6D77828333';
var_export(preg_replace('~.{4}\K(?!$)~', ' ', $string)); // '56A1 9E6D 7782 8333'
模式很简单:
.{4}
)\K
)(?!$)
没有字符串爆炸或数组内爆,只需直接操作字符串即可。
答案 2 :(得分:0)
如果有人需要在每次拆分中拆分不同的数字,然后将它们合并在一起,这是超级hacky,但这是可行的,因此必须拆分要呈现的礼品卡。
$card = "603628385592165882327";
$test = str_split($card, 6);
$test1 = str_split($card, 5);
$test2 = str_split($card, 6);
$test3 = str_split($card, 4);
$number = $test[0];
$number .= " ";
$number .= $test1[1];
$number .= " ";
$number .= $test2[2];
$number .= " ";
$number .= $test3[3];
echo $number;
结果
603628 83855 165882 1658