我正在尝试创建一个在所有"不同字符之间有空格的字符串,例如:
"11131221133112" should result in "111 3 1 22 11 33 11 2" "1321131112" should result in "1 3 2 11 3 111 2"
我尝试使用递归函数,不知道这是否是最好的方法因为我在PHP中找不到任何内置函数.这是我的功能:
function stringSplitter($str) { $strArr = str_split($str); foreach ($strArr as $key => $value) { if ($key == count($strArr)-1) return (substr($str, 0)); if ($value != $strArr[$key+1]) { return (substr($str, 0, $key+1)." ".stringSplitter(substr($str, $key))); } } }
出于某种原因,这个函数似乎无限迭代,我无法弄清楚为什么.我哪里出错了?
有一个更好的方法吗?我想使用explode来解决数组中的应答字符串,这可以直接完成吗?
RegEx方法,
在RegEx \ 1中,它是对\ d捕获的内容的反向引用
2> Chetan Ameta..:最简单的解决方案是:
$string = '11131221133112'; $strarr = str_split($string); $tmp = null; $newstr = ''; foreach($strarr as $a){ $newstr .= ($a == $tmp) ? $a:' '.$a; $tmp = $a; } echo $newstr;输出:
111 3 1 22 11 33 11 2