PHP模拟SQL的GROUP BY算法

Zebra-PHP-ArrayGroupBy是一个PHP库,用于在不涉及数据库的情况下模拟SQL的GROUP BY操作,提高代码重用率和运算效率。它支持对二维数组进行归并,并允许在归并时对字段进行自定义处理,提供更灵活的函数应用。通过示例展示了如何使用该库进行数据处理,如计算中位数、按时间间隔归并等。
摘要由CSDN通过智能技术生成


github地址:https://github.com/huyanping/Zebra-PHP-ArrayGroupBy

packagist地址:https://packagist.org/packages/jenner/array_group_by

为什么使用Zebra-PHP-ArrayGroupBy

在如下场景中,我们总是希望能够在php中使用类似mysql的groupby操作:

  • SQL过于复杂,造成数据库运算效率低下
  • 从数据库中读取出原始数据,在php中进行运算,增强代码重用率
  • 其他非数据库场景的数组归并场景

Zebar-PHP-ArrayGroupBy能够做什么

  • 对二维数组进行归并
  • 归并的同时,支持对字段进行自定义处理
  • 比SQL更灵活的自定义函数,你可以随意编写归并和字段合并函数

示例:

$records = [
    ['order_date' => '2014-01-01', 'price' => 5],
    ['order_date' => '2014-01-02', 'price' => 10],
    ['order_date' => '2014-01-03', 'price' => 20],
    ['order_date' => '2015-01-04', 'price' => 25],
];

$group_by_fields = [
    'order_date' => function($value){
     
            return date('Y', strtotime($value));
        }
];

$group_by_value = [
    'order_date' => [
        'callback' => function($value_array){
     
                return substr($value_array[0], 0, 4);
            },
        'as' => 'year'
    ],
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值