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


Finding how many times a number exists inside an array

我有一个像这样的数组:

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

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

的例子:

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

正确答案:

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

初始答案(错误,误读问题,对不起!):

下面是一个不使用正则表达式的单行代码:

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

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

$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