使用PHP从包含pdo / sql获取结果的数组中过滤掉

时间:2013-04-19 00:56:14

标签: php sql arrays pdo count

我从这样的PDO查询中获取所有结果:

$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);

现在,我想计算字段'status'等于'OPEN'的行数。我知道我可以直接构建我的SQL以仅加载OPEN状态行,但我认为使用PHP可能会更快

$openOrders = count(array_keys($orders,"OPEN"));

虽然返回0。

1 个答案:

答案 0 :(得分:1)

为了记录,这是我在PHP中的方式:

$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);
$open = array_reduce($orders, function ($num, array $order) {
    return $num + (int)($order['status'] == 'OPEN');
}, 0);

以下是实际操作的方法:

$query = "SELECT COUNT(*) FROM orders WHERE status = 'OPEN'";