//字符串例如aaa123bbb456 123aaa456bbb
//写的感觉很不好 有大神看到希望给出更优得解决方案
public function demo($str = '12111aaa123bbb456')
{
$array = [];
$strTemp = NULL;
$intTemp = NULL;
for ($i=0;$i<strlen($str);$i++){
$cur = $str[$i];
if(is_numeric($cur))
{
if(!empty($strTemp)){
$array[] = $strTemp;
$strTemp = NULL;
}
$intTemp .= $cur;
}else{
if(!empty($intTemp)){
$array[] = $intTemp;
$intTemp = NULL;
}
$strTemp .= $cur;
}
}
if(!empty($strTemp)){
$array[] = $strTemp;
}
if(!empty($intTemp)){
$array[] = $intTemp;
}
var_dump(implode(':',$array));die;
}
//同行给出代码 在之上做了优化、
public function demo()
{
$str = 'aaa123aaab456bbb333ccc';
$str1 = '';
$j=0;
for ($i=0;$i<strlen($str);$i++){
if(is_numeric($str[$i])){
$str1.= $j==1? $str[$i]:':'.$str[$i];
$j=1;
}else{
$str1.= $j==0? $str[$i]:':'.$str[$i];
$j=0;
}
}
var_dump( trim( $str1,':'));
}