我取出由一個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