我有一个看起来像这样的数组:
$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
// )
这应该可以满足您的需求。php.net 上的 substr_count