我发现很多样本如何计算数组中的位置或事件,但实际上这并不能解决我的问题。
My Array看起来像:
$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)我想摆脱这个循环。
答案 0 :(得分:1)
array_reduce()将完成这项工作
$pathname = "./test.txt";
答案 1 :(得分:1)
使用array_keys
和array_filter
函数的替代解决方案:
$count = count(array_filter(array_keys($foo), function($v){
return preg_match('/^gr\d+?/',$v);
}));
// $count is 5