给出如下字符串:
$a = '00023407283';
$b = 'f045602345';
是否有内置函数可以计算从开头开始并持续到找不到未指定的其他字符的特定字符的出现次数?
鉴于上述情况,并指定零(0
)作为字符,预期结果将为:
$a = '00023407283'; // 3 (the other zeros don't count)
$b = 'f0045602345'; // 0 (It does not start with zero)
答案 0 :(得分:0)
这应该可以解决问题:
function count_leading($haystack,$value) {
$i = 0;
$mislead = false;
while($i < strlen($haystack) && !$mislead) {
if($haystack[$i] == $value) {
$i += 1;
} else {
$mislead = true;
}
}
return $i;
}
//examples
echo count_leading('aaldfkjlk','a'); //returns 2
echo count_leading('dskjheelk','c'); //returns 0
答案 1 :(得分:0)
我不认为有任何内置函数可以做到这一点(它太具体了)但你可以写一个方法来做到这一点
function repeatChar($string, $char) {
$pos = 0;
while($string{$pos} == $char) $pos++;
return $pos;
}
答案 2 :(得分:0)