>我有一个来自mysql数据库的数组。所以它是这样构建的(只有前两个条目):
Array
(
[0] => Array
(
[id_cre] => CD000000001
[0] => CD000000001
[id_az] => AZ000000001
[1] => AZ000000001
)
[1] => Array
(
[id_cre] => CD000000002
[0] => CD000000002
[id_az] =>
[1] =>
)
)
我想计算数组中有多少条目[id_az] =>''
.
如果我这样做:
count($creds)
我得到2
(数组中的项目数)。
我宁愿重用这个数组(查询已经为另一个报告运行),而不是使用 WHERE 子句进行新查询以子选择WHERE id_az = ''
。
有什么提示吗?
这应该适合您:
只需获取带有 array_column()
的列id_az
,然后count()
数组,例如
echo count(array_column($creds, "id_az"));
为什么不使用一个好的老式 foreach 循环呢?
$count = 0;
foreach($data as $row)
{
$count += empty($row['id_az']) ? 0 : 1;
}
或交替使用具有匿名功能的array_map
$count = 0;
array_map(function($row) use (&$count) { $count += empty($row['id_az']) ? 0 : 1; }, $data);
但这是PHP>5.3。回调不起作用,因为您将无法访问用于存储计数的变量。