^0$|^[1-9](?:[0-9]{3}|[0-9]{19}|[0-9]{24})$|^[0-9][1-9](?:[0-9]{2}|[0-9]{18}|[0-9]{23})$|^[0-9]{2}[1-9](?:[0-9]|[0-9]{17}|[0-9]{22})$|^[0-9]{3}[1-9](?:|[0-9]{16}|[0-9]{21})$|^[0-9]{4}[1-9](?:[0-9]{15}|[0-9]{20})$|^[0-9]{5}[1-9](?:[0-9]{14}|[0-9]{19})$|^[0-9]{6}[1-9](?:[0-9]{13}|[0-9]{18})$|^[0-9]{7}[1-9](?:[0-9]{12}|[0-9]{17})$|^[0-9]{8}[1-9](?:[0-9]{11}|[0-9]{16})$|^[0-9]{9}[1-9](?:[0-9]{10}|[0-9]{15})$|^[0-9]{10}[1-9](?:[0-9]{9}|[0-9]{14})$|^[0-9]{11}[1-9](?:[0-9]{8}|[0-9]{13})$|^[0-9]{12}[1-9](?:[0-9]{7}|[0-9]{12})$|^[0-9]{13}[1-9](?:[0-9]{6}|[0-9]{11})$|^[0-9]{14}[1-9](?:[0-9]{5}|[0-9]{10})$|^[0-9]{15}[1-9](?:[0-9]{4}|[0-9]{9})$|^[0-9]{16}[1-9](?:[0-9]{3}|[0-9]{8})$|^[0-9]{17}[1-9](?:[0-9]{2}|[0-9]{7})$|^[0-9]{18}[1-9](?:[0-9]|[0-9]{6})$|^[0-9]{19}[1-9](?:|[0-9]{10})$|^[0-9]{20}[1-9][0-9]{4}$|^[0-9]{21}[1-9][0-9]{3}$|^[0-9]{22}[1-9][0-9]{2}$|^[0-9]{23}[1-9][0-9]$|^[0-9]{24}[1-9]$SELECT `day`, `priority`, `count`
FROM (
(SELECT 'today' AS `day`, `priority`, COUNT(*) AS `count`
FROM `table`
WHERE `time` >= CURDATE() AND `time` < CURDATE() + INTERVAL 1 DAY
GROUP BY `priority`)
UNION ALL (SELECT 'yesterday', `priority`, COUNT(*)
FROM `table`
WHERE `time` >= CURDATE() + INTERVAL 1 DAY AND `time` < CURDATE() + INTERVAL 2 DAY
GROUP BY `priority`)
) AS `t` $result = [];
foreach ($arr as [$name, $price]) {
$result[$name] = [
'name' => $name,
'totalPrice' => ($result[$name]['totalPrice'] ?? 0) + $price,
'count' => ($result[$name]['count'] ?? 0) + 1
];
}
$result = array_values($result);
/*
array(2) {
[0] => array(3) {
["name"] => string(8) "iphone 0"
["totalPrice"] => int(156000)
["count"] => int(4)
}
[1] => array(3) {
["name"] => string(7) "macbook"
["totalPrice"] => int(300000)
["count"] => int(1)
}
}
*/