0

我有一个看起来像这样的数组:

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

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

例子:

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

2 回答 2

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));
于 2013-05-03T13:32:20.453 回答
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
// )

这应该可以满足您的需求。php.net 上的 substr_count

于 2013-05-03T13:37:09.620 回答