我正在尝试计算某个值在数组中出现的次数.除此值总是递增1,并且数组中有这些值的数量未知.
例:
$first = array( 'my-value-1','my-value-2','my-value-3' );
$second = array( 'my-value-1','my-value-2','my-value-3', 'my-value-4', 'my-value-5' );
Run Code Online (Sandbox Code Playgroud)
我的目标是能够在上面的例子中检索3 for $first和5的计数$second.
数组中可能还有其他值,但我唯一感兴趣的值是那些开头的值my-value-.
我不知道数组中的值的数量,但它们总是以my-value-添加到末尾的数字开头.
有没有办法my-value-用某种通配符计算数组中显示的次数?
使用正则表达式过滤数组并计算匹配的值.您也可以使用^它来强制它在开头^my-value-\d+:
$count = count(preg_grep('/my-value-\d+/', $first));
Run Code Online (Sandbox Code Playgroud)
你也可以这样做.您可以再次使用=== 0它来使其在开头匹配:
$count = count(array_filter($first, function($v) {
return strpos($v, 'my-value-') !== false;
}));
Run Code Online (Sandbox Code Playgroud)