查找数组中存在的数字的次数

时间:2013-05-03 13:27:12

标签: php regex

我有一个如下所示的数组:

$numbers = array("332467323232", "750327430375", "332503248632", ...);

我想获得数字 32 (或任何其他数字)在我的数组中的每个字符串中显示的次数。

示例:

$times = array(4, 1, 3, ...);

2 个答案:

答案 0 :(得分:4)

正确答案:

$times=array_map(function($str) { return substr_count($str, "32"); }, $numbers);

初步回答(错误,误读了这个问题,对不起!):

这是一个不使用正则表达式的单行:

echo array_sum(array_map(
                  function($str) { return substr_count($str, "32"); },
                  $numbers));

答案 1 :(得分:1)

您可能不需要正则表达式,例如:

$numbers = array(
    32323232, # 4
    12233232, # 2
    12314232, # 1
    12349085, # 0
);

$result = array();

foreach($numbers as $num){
    $result[] = substr_count("$num", '32');
}

print_r($result);

//  Array
// (
//     [0] => 4
//     [1] => 2
//     [2] => 1
//     [3] => 0
// )

这应该做你想要的。 substr_count on php.net