用于计算字符串中位数的函数

2022-08-30 15:09:13

我正在寻找一个快速的PHP函数,给定一个字符串,它将计算该字符串中的数字字符(即数字)的数量。我找不到一个,有没有一个功能可以做到这一点?


答案 1

这可以通过正则表达式轻松完成。

function countDigits( $str )
{
    return preg_match_all( "/[0-9]/", $str );
}

该函数将返回找到模式的次数,在本例中为任意数字。


答案 2

首先拆分字符串,然后筛选结果以仅包含数字字符,然后简单地计算生成的元素。

<?php 

$text="12aap33";
print count(array_filter(str_split($text),'is_numeric'));

编辑:出于好奇添加了一个基准测试:(上面的字符串和例程的1000000的循环)

preg_based.php是overv 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

正则表达式明显优越。:)


推荐