Laravel 数组过滤

Posted

技术标签:

【中文标题】Laravel 数组过滤【英文标题】:Laravel array filtering 【发布时间】:2021-12-09 06:23:15 【问题描述】:

开发人员,我正在编写一份报告,我必须根据来自前面的日期范围的某些条件显示公司排名。例如:上周,我已经做到了,但现在我想显示某家公司在多少周内处于同一级别。如果我检查过去一周,我必须检查从年初开始每周的排名。如果上周第一位置的公司和其他周的第一位置公司相同,我将计数相应增加。当我使用 for 循环查询每周的数据时,处理和显示数据大约需要 42 秒。此外,我尝试从一年的第一周到当前周获取整个数据,然后过滤数组,但这也需要很长时间。任何人都可以提出任何其他想法来克服这个问题吗?提前致谢。

【问题讨论】:

请添加一些您尝试过的代码 【参考方案1】:

据我了解您的问题 - 那么聚合数据的存储应该对您有所帮助。

    在数据库中创建一个表,假设是“archive_rating”,其中包含 3 个字段:week_number(从 2000 年 1 月 1 日开始)、company_id、company_position 在您的评分中。不要忘记 week_number 字段的索引。 在每周一的 00:00:00,运行后台任务,将每个公司的职位保存到存档表中。

这将使您无需从年初开始计算每周的评分。你已经拥有它了。

【讨论】:

以上是关于Laravel 数组过滤的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 数组过滤

Laravel 8:在刀片视图上过滤/显示数据,数组保存在数据库中

Laravel PHP通过多个键值过滤多维数组

如何过滤数组以获取laravel中两个不同对象中的特定列

过滤现有模型数据 laravel

Vue JS 对分页 Laravel 结果的实时客户端搜索过滤器