给出一个字符串,返回里面连续字母的个数,比如:abbcddde,返回 1a2b1c3de;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function str($str)
{
$res = '';
$arr = str_split($str);//把字符串变成数组
$len = count($arr);
$key = 0; // key 用来记录下标,为了方便计算前面的数字
for ($i = 0; $i < $len; $i++) {
$nk = $i + 1;
$v = $arr[$i];
// 俩值不相同时
if ($arr[$i] != $arr[$nk]) {
// 重复次数
$num = $nk - $key;
$res .= $num . $v; // 不相等时计算出前面的数字
$key = $nk; // 同时 key 下标重新赋值
}
}

return $res;
}