例如,
echo count($_GET);
打印所有值的数量,如何计算值以“cat”开头。
价值就像
array(2) {
["cat1"]=>
string(1) "a"
["cat2"]=>
string(1) "b"
["dog1"]=>
string(1) "c"
}
答案 0 :(得分:1)
使用preg grep
$list = array ( 'cat1', 'cat2', 'dog' );
$res = preg_grep ('/^cat/i', $list);
print_r(count($res));
答案 1 :(得分:1)
<?php
$list = array ( 'cat1', 'cat2', 'dog' );
$numCat = 0;
array_walk($list, function($v) use(&$numCat) {substr($v, 0, 3) == 'cat' ? $numCat += 1 : '';});
echo $numCat;
答案 2 :(得分:0)
使用array_keys方法获取数组$ _GET的所有键,匹配preg_rep所需的键,检查以所需字符串开头的字符串,并计算匹配的数量。
count(preg_rep('/^cat/',array_keys($_GET)));
答案 3 :(得分:0)
您可以使用循环检查,使用substr
获取字符串键值的前三个字符,然后将其与单词&#34; cat&#34;进行比较。使用strcmp
:
$cats = 0;
foreach ($_GET as $key => $val){
if(strcmp(substr($key,0,3),'cat')==0){
$cats++;
}
}
echo $cats;
答案 4 :(得分:0)
这是另一种方式,
echo count(array_filter($_GET, function($key) {
return strpos($key, 'cat') === 0;
},ARRAY_FILTER_USE_KEY));
我希望这会有所帮助。