我有一个数组,看起来像这样:找到多少次阵列内部存在一些
$numbers = array("332467323232", "750327430375", "332503248632", ...);
我想获得的次数,数量数量(或任何其他数字)显示在我的数组中的每个字符串中。
例子:
$times = array(4, 1, 3, ...);
我有一个数组,看起来像这样:找到多少次阵列内部存在一些
$numbers = array("332467323232", "750327430375", "332503248632", ...);
我想获得的次数,数量数量(或任何其他数字)显示在我的数组中的每个字符串中。
例子:
$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));
我接受你的答案,但我没有正确地问我的问题...我正在寻找32出现的时间数假设我的数组中的字符串是除以逗号。进出口。 “32,53”给出了1个外观,但给出了“437”。我会发布一个适当的问题。 Thx为您提供帮助! – 2013-05-03 13:56:50
您可能不需要正则表达式,例如:
$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
有。是否有一个原因,你必须使用正则表达式? – Jon 2013-05-03 13:29:24
我可以使用PHP来实现,但是,正则表达式是一个更短,更干净的方法。 – 2013-05-03 13:31:47
我不能说我完全理解你想在这里使用正则表达式。 3245是否意味着数字32会出现?这是否也意味着你想要计算324,3245,245,45等?正则表达式是一种匹配,验证和替换的方式,但计数并不是真正的强项。 – melwil 2013-05-03 13:31:51