我取出由一个PDO这样的查询所有的结果过滤掉:用PHP从数组包含PDO/SQL获取结果
$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);
现在,我想看看有多少行存在该场'status'等于'OPEN'。我知道我可以只建立我的SQL直接加载只打开状态行,但我认为它可能使用PHP的东西,如
$openOrders = count(array_keys($orders,"OPEN"));
它虽然返回0更快。
我取出由一个PDO这样的查询所有的结果过滤掉:用PHP从数组包含PDO/SQL获取结果
$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);
现在,我想看看有多少行存在该场'status'等于'OPEN'。我知道我可以只建立我的SQL直接加载只打开状态行,但我认为它可能使用PHP的东西,如
$openOrders = count(array_keys($orders,"OPEN"));
它虽然返回0更快。
为了记录在案,这里就是我会做它在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'";
应该返回一个多维数组,你尝试循环结果呢?或者使用'vardump();'查看'$ orders'的样子。 –
1-你怎么知道有超过0行? 2-你确定你不需要array_values吗? – Sebas
不知道'$ orders'是怎么样的,我们无法帮到你。 – HamZa