麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 邏輯算法 > 正文

PHP模擬SQL的GROUPBY算法

2020-03-22 19:29:04
字體:
來源:轉載
供稿:網友
  • 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($html' target='_blank'>value){            return date('Y', strtotime($value));        }];$group_by_value = [    'order_date' => [        'callback' => function($value_array){                return substr($value_array[0], 0, 4);            },        'as' => 'year'    ],    'price' => function($value_array){            return array_sum($value_array);        },];$grouped = JennerZebraArrayGroupBy::groupBy($records, $group_by_fields, $group_by_value);print_r($grouped);

        結果:

        Array(    [0] => Array        (            [year] => 2014            [price] => 35        )    [1] => Array        (            [year] => 2015            [price] => 25        ))

        你也可以使用鏈式方法調用,對數據進行多次匯總,更加靈活:

        $records = [    ['bill_time'=>'2014-01-01 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-01 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-01 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-01 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-01 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-01 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-02 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-02 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-02 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-02 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-02 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-03 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-03 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-03 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-03 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-03 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-04 00:00:00', 'price'=>1, 'cnt'=>3,],    ['bill_time'=>'2014-01-04 00:00:00', 'price'=>1, 'cnt'=>3,],];$group_by_fields = [    'bill_time' => function($field){            return substr($field, 0, 10);        }];$group_by_values = [    'bill_time' => function($field_values){            return substr($field_values[0], 0, 10);        },    'price' => function($field_values){            return array_sum($field_values);        },    'cnt' => function($field_values){            return array_sum($field_values);        }];$week_fields = [    'bill_time' => function($field){            return date('w', strtotime($field));        }];$week_values = [    'bill_time' => function($field_values){            return date('w', strtotime($field_values[0]));        },    'price' => function($field_values){            return array_sum($field_values);        },    'cnt' => function($field_values){            return array_sum($field_values);        }];$grouped = (new JennerZebraArrayGroupBy($records))->groupByField($group_by_fields)->groupByValue($group_by_values)->groupByField($week_fields)->groupByValue($week_values)->get();print_r($grouped);

        舉例

          歸并過程中,實現對結果的中值計算歸并過程中,對時間字段進行自定義處理,例如歸并每5分鐘的數據等等

          PHP編程

          鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 国产精品成人亚洲一区二区 | 久草在线最新 | 精品国产91一区二区三区 | 久久最新视频 | 国产午夜亚洲精品午夜鲁丝片 | 曰批全过程40分钟免费视频多人 | 国产成年人在线观看 | 精品成人在线 | 蜜桃传媒视频麻豆第一区免费观看 | 精品1 | 欧美三日本三级少妇三级99观看视频 | 国产精品三级a三级三级午夜 | 欧美日韩在线播放一区 | av成人在线免费观看 | 成人在线视频在线观看 | 成人mm视频在线观看 | 神马久久精品综合 | 午夜久久电影 | 亚洲午夜一区二区三区 | 激情小说另类 | 成人午夜一区 | 国产午夜精品久久久久久久蜜臀 | 玖玖精品视频在线 | 亚洲免费视频大全 | 国产美女精品视频 | 91 免费看片 | 国产欧美在线一区二区三区 | 91av网址 | 久草成人在线 | 本站只有精品 | 一级国产精品一级国产精品片 | 日韩欧美色综合 | 国产亚洲精彩视频 | 毛片大全 | 五月天影院,久久综合, | 午夜热门福利 | 日本成人一二三区 | 一级成人黄色片 | 亚洲免费在线看 | 亚洲一区二区国产 | 悠悠成人资源亚洲一区二区 |