可以使用 PHP 的内置函数 `array_filter()` 进行过滤。该函数可以对数组中的每个元素进行回调函数的判断,返回符合条件的元素组成的新数组。
以下是一个示例代码,假设 `$data` 是查询出来的总数据数组,包含 `date` 和 `value` 两个字段,需要分别获取今日、昨日、近30日和总数据:
```php
// 获取今日数据
$today = date('Y-m-d');
$data_today = array_filter($data, function($item) use ($today) {
return $item['date'] == $today;
});
// 获取昨日数据
$yesterday = date('Y-m-d', strtotime('-1 day'));
$data_yesterday = array_filter($data, function($item) use ($yesterday) {
return $item['date'] == $yesterday;
});
// 获取近30日数据
$thirty_days_ago = date('Y-m-d', strtotime('-30 day'));
$data_thirty_days = array_filter($data, function($item) use ($thirty_days_ago) {
return $item['date'] >= $thirty_days_ago;
});
// 获取总数据
$total = count($data);
```
以上代码中,使用了匿名函数作为 `array_filter()` 的回调函数,通过 `use` 关键字将变量传递给回调函数。在回调函数中,根据日期进行判断,返回符合条件的元素。
需要注意的是,如果数据量较大,使用 `array_filter()` 可能会影响性能,可以考虑使用其他更高效的方法进行过滤。