我找到了很多示例如何计算数组中的位置或出现次数,但实际上这并不能解决我的问题。
我的阵列看起来像:
$foo = array(
"foo"=>"bar",
"bar"=>"foo",
"hello"=>"world",
"world"=>"hello",
"grT1"=>"A",
"grT2"=>"B",
"grT3"=>"C",
"grT4"=>"D",
"grT5"=>"E",
"gr1"=>2,
"gr2"=>0,
"gr3"=>,
"gr4"=>5,
"gr5"=>
)
我想要实现的是计算我的数组中有多少 gr{i}
。
问题是,我不想要计数 grT{i}
。所以这个样本的结果应该是5。
array_count_values
在这种情况下对我没有帮助。
我的试用 atm 是:
$count = 0;
for($i=0;$i<count($foo);$i++){
if(array_key_exists("gr".$i, $foo)){
$count++
}
}
这是唯一的方法吗?或者有更好的方法吗?
编辑: 因为我需要一个循环 (for) 的结果,所以我想摆脱这个循环。
最佳答案
array_reduce() 将完成这项工作
$count = array_reduce(array_keys($foo), function($c, $k){
return preg_match('/^gr\d+$/', $k) ? ++$c : $c;
}, 0);
关于php - 计算具有相同部分的特定数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37728350/