我一直在寻找在该字符串的快速PHP函数,给定一个字符串,将计算的数字字符数(即位数)。 我无法找到一个,有一个函数来做到这一点?
Answer 1:
这可以很容易地使用正则表达式来完成。
function countDigits( $str )
{
return preg_match_all( "/[0-9]/", $str );
}
该函数将返回的次数图案发现,在这种情况下是任何数字量。
Answer 2:
第一分割你的字符串 ,下一个过滤器的结果只包含数字字符,然后简单地算 ,结果元素。
<?php
$text="12aap33";
print count(array_filter(str_split($text),'is_numeric'));
编辑:添加一个基准好奇:(的上面的字符串和例程的百万循环)
preg_based.php是章概述的preg_match_all解决方案
harald@Midians_Gate:~$ time php filter_based.php
real 0m20.147s
user 0m15.545s
sys 0m3.956s
harald@Midians_Gate:~$ time php preg_based.php
real 0m9.832s
user 0m8.313s
sys 0m1.224s
正则表达式是明显优于。 :)
Answer 3:
对于PHP <5.4:
function countDigits( $str )
{
return count(preg_grep('~^[0-9]$~', str_split($str)));
}
Answer 4:
该功能经过给定的字符串和检查每个字符,看它是否是数字。 如果是,它增加的位数,然后在最后返回。
function countDigits($str) {
$noDigits=0;
for ($i=0;$i<strlen($str);$i++) {
if (is_numeric($str{$i})) $noDigits++;
}
return $noDigits;
}
文章来源: Function to count number of digits in string