计算php数组中的列数?

计算php数组中的列数?,php,arrays,Php,Arrays,我有一个简单的函数来计算数组中具有特定值的列数: echo 'Status-accept: ' . array_count_values(array_column($array, 'status'))['Accept']; 当数组中存在accept时,它工作良好。如果没有,则获取未定义索引:接受。 我的数组如下所示: array{ ... ["status"]=> string(7) "Accept" ... } 如何在此处添加类似于is

我有一个简单的函数来计算数组中具有特定值的列数:

echo 'Status-accept: ' . array_count_values(array_column($array, 'status'))['Accept'];
当数组中存在
accept
时,它工作良好。如果没有,则获取
未定义索引:接受
。
我的数组如下所示:

array{
...
["status"]=>
    string(7) "Accept"
...
}

如何在此处添加类似于
isset
的内容?

使用oneliner是不可能的(或者代码会很混乱),因此您必须在某处存储一个带有计数的值,然后使用
??
运算符,例如:

$counts = array_count_values(array_column($array, 'status'));
echo 'Status-accept: ' . ($counts['Accept'] ?? 0);
作为oneliner,您可以:

echo 'Status-accept: ' . count(array_filter($array, function($v) { return $v['status'] === 'Accept'; }));

在这里,我们过滤状态字段为“接受”的所有项目,然后只对过滤的项目进行计数。如果没有项-筛选后的数组将为空,我们将得到
0

为什么不添加该项?有没有必要把所有的计算放在一行,而不是分成几个步骤?