当前位置: 首页>>代码示例>>PHP>>正文


PHP Arrays::groupBy方法代码示例

本文整理汇总了PHP中Arrays::groupBy方法的典型用法代码示例。如果您正苦于以下问题:PHP Arrays::groupBy方法的具体用法?PHP Arrays::groupBy怎么用?PHP Arrays::groupBy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Arrays的用法示例。


在下文中一共展示了Arrays::groupBy方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: calculation_sheet_custom

 public function calculation_sheet_custom($keys)
 {
     include_once APPPATH . "models/helperClasses/Calculation_Sheet.php";
     $this->db->select("*");
     $this->db->where(array('entryDate >=' => $keys['from_date'], 'entryDate <=' => $keys['to_date']));
     if ($keys['company_id'] != 'all') {
         $this->db->where('company_id', $keys['company_id']);
     }
     if ($keys['contractor_id'] != 'all') {
         $this->db->where('contractor_id', $keys['contractor_id']);
     }
     if ($keys['product'] != 'all' && $keys['product'] != '') {
         $this->db->where('product', $keys['product']);
     }
     if ($keys['product_type'] != 'all' && $keys['product_type'] != '') {
         if ($_GET['product_type'] == 'black oil') {
             $this->db->where('product_type', 'black oil');
         }
         if ($_GET['product_type'] == 'white oil') {
             $this->db->where('product_type', 'white oil');
         }
     }
     $result = $this->db->get('calculation_sheet_view')->result();
     $calculation_sheet_white_oil = array();
     foreach ($result as $record) {
         array_push($calculation_sheet_white_oil, new Calculation_Sheet($record));
     }
     $grouped = Arrays::groupBy($calculation_sheet_white_oil, Functions::extractField('destination'), 'invoice_number');
     ksort($grouped);
     return $grouped;
 }
开发者ID:nomantufail,项目名称:virik_updating,代码行数:31,代码来源:reports_model.php

示例2: pre_saved_sorting_columns

 public function pre_saved_sorting_columns($module)
 {
     $result = $this->db->get_where('sort', array('view' => $module))->result();
     if (sizeof($result) > 0) {
         $grouped = Arrays::groupBy($result, Functions::extractField('sort_by'), 'priority');
         return $grouped;
     }
     return null;
 }
开发者ID:nomantufail,项目名称:virik_updating,代码行数:9,代码来源:helper_model.php

示例3: pre_saved_sorting_columns

 public function pre_saved_sorting_columns($module)
 {
     $multiple_sorting_info = $this->multiple_sorting_info($module);
     $objects = array();
     foreach ($multiple_sorting_info as $record) {
         array_push($objects, json_decode(json_encode($record), FALSE));
     }
     $grouped = Arrays::groupBy($objects, Functions::extractField('column_name'), 'column_priority');
     return $grouped;
 }
开发者ID:nomantufail,项目名称:viriklogistics,代码行数:10,代码来源:helper_model.php

示例4: tanker_trips_expenses

 function tanker_trips_expenses()
 {
     $this->db->select('voucher_journal.trip_id as trip_id, sum(voucher_entry.debit_amount) as amount, account_titles.title as title');
     $this->db->join('voucher_journal', 'voucher_journal.trip_id = trips.id', 'left');
     $this->db->join('voucher_entry', 'voucher_entry.journal_voucher_id = voucher_journal.id', 'left');
     $this->db->join('account_titles', 'account_titles.id = voucher_entry.account_title_id', 'left');
     $this->db->where('voucher_journal.tanker_id', $this->tankerId);
     $this->db->where('trips.entryDate >=', $this->from);
     $this->db->where('trips.entryDate <=', $this->to);
     $this->db->where('account_titles.secondary_type', 'other_expense');
     $this->db->where('voucher_journal.trip_id !=', 0);
     $this->db->where('voucher_journal.active', 1);
     $this->db->where('trips.active', 1);
     $this->db->order_by('voucher_journal.trip_id');
     $this->db->group_by('voucher_journal.trip_id, voucher_entry.account_title_id');
     $result = $this->db->get('trips')->result();
     return Arrays::groupBy($result, Functions::extractField('trip_id'), 'trip_id');
 }
开发者ID:nomantufail,项目名称:virik_updating,代码行数:18,代码来源:IrfanTankerReport.php

示例5: automatic_transactions_on_trip_edit


//.........这里部分代码省略.........
             foreach ($result as $record) {
                 array_push($trip_detail_ids_related_to_voucher_id, $record->trip_detail_id);
             }
             /*************************************************************/
             /********fetching trip_ids by trip_detail_ids***********/
             $this->db->select('trip_id');
             $this->db->distinct();
             $this->db->from('trips_details');
             $this->db->where_in('trips_details.id', $trip_detail_ids_related_to_voucher_id);
             $result_3 = $this->db->get()->result();
             $trip_ids_related_to_voucher_id = array();
             foreach ($result_3 as $record_3) {
                 array_push($trip_ids_related_to_voucher_id, $record_3->trip_id);
             }
             /********************************************/
             /*declaring variables of amounts to update*/
             $total_customer_freight = 0;
             $total_customer_freight_without_shortage = 0;
             $total_shortage_amount = 0;
             $total_contractor_freight = 0;
             $total_contractor_freight_without_shortage = 0;
             $total_company_commission = 0;
             $total_company_wht = 0;
             $total_service_charges = 0;
             $total_contractor_commission = 0;
             $grand_total_freight = 0;
             /******************************************/
             /**
              * fetching white_oil and black_oil seprate trip ids
              **/
             $this->db->select('trip_id, trip_detail_id, product_type');
             $this->db->where_in('trip_detail_id', $trip_detail_ids_related_to_voucher_id);
             $raw_trip_ids_with_product_type = $this->db->get('trips_details_upper_layer_view')->result();
             $grouped_by_product_type = Arrays::groupBy($raw_trip_ids_with_product_type, Functions::extractField('product_type'));
             $black_oil_trip_ids = isset($grouped_by_product_type['black oil']) ? property_to_array('trip_detail_id', $grouped_by_product_type['black oil']) : [];
             $white_oil_trip_ids = isset($grouped_by_product_type['white oil']) ? property_to_array('trip_detail_id', $grouped_by_product_type['white oil']) : [];
             $black_oil_trip_ids = sizeof($black_oil_trip_ids) == 0 ? [0] : $black_oil_trip_ids;
             $white_oil_trip_ids = sizeof($white_oil_trip_ids) == 0 ? [0] : $white_oil_trip_ids;
             $this->db->select('*');
             $this->db->where_in('trip_detail_id', $black_oil_trip_ids);
             $black_oil_trips = $this->db->get('manage_accounts_black_oil_view')->result();
             $this->db->select('*');
             $this->db->where_in('trip_detail_id', $white_oil_trip_ids);
             $white_oil_trips = $this->db->get('manage_accounts_white_oil_view')->result();
             /**********************************************************/
             foreach ($black_oil_trips as $detail) {
                 //here we will claculate the amounts needed to update
                 $customer_freight_amount = round($detail->customer_freight, 3);
                 $total_customer_freight += $customer_freight_amount;
                 $contractor_freight_amount = round($detail->net_payables, 3);
                 $total_contractor_freight += $contractor_freight_amount;
                 $contractor_commission_amount = $detail->contractor_commission_amount;
                 $total_contractor_commission += $contractor_commission_amount;
                 $company_commission_amount = round($detail->company_commission_amount, 3);
                 $total_company_commission += $company_commission_amount;
                 $wht_amount = $detail->wht_amount;
                 $total_company_wht += $wht_amount;
                 $service_charges = 0;
                 $service_charges = $detail->freight_amount_cmp - $detail->company_commission_amount - $detail->customer_freight - $detail->contractor_commission_amount - $detail->wht_amount - $detail->shortage_amount;
                 if ($service_charges > -0.1 && $service_charges < 0.1) {
                     $service_charges = 0;
                 }
                 $total_service_charges += $service_charges;
             }
             foreach ($white_oil_trips as $detail) {
                 //here we will claculate the amounts needed to update
开发者ID:nomantufail,项目名称:virik_updating,代码行数:67,代码来源:trips_model.php

示例6: calculation_sheet_custom


//.........这里部分代码省略.........
     //var_dump($details_ids_with_destination_shortage);
     /*--- Selecting every thing with decanding shortage vouchers -----*/
     $this->select_calculation_sheet_stuff();
     $this->db->from("trips");
     $this->join_trips_with_every_thing();
     $this->join_trips_details_and_decanding_shortage();
     $this->db->where('trips.active', 1);
     $this->db->where(array('trips.entryDate >=' => $keys['from_date'], 'trips.entryDate <=' => $keys['to_date']));
     if ($keys['company_id'] != 'all') {
         $this->db->where('trips.company_id', $keys['company_id']);
     }
     if ($keys['contractor_id'] != 'all') {
         $this->db->where('trips.contractor_id', $keys['contractor_id']);
     }
     if ($keys['product'] != 'all' && $keys['product'] != '') {
         $this->db->where('trips_details.product', $keys['product']);
     }
     if ($keys['product_type'] != 'all' && $keys['product_type'] != '') {
         if ($_GET['product_type'] == 'black oil') {
             $this->black_oil();
         }
         if ($_GET['product_type'] == 'white oil') {
             $this->white_oil();
         }
     }
     if (sizeof($details_ids_with_decanding_shortage) > 0) {
         $this->db->where_in('trips_details.id', $details_ids_with_decanding_shortage);
     }
     $this->db->group_by('voucher_journal.id');
     $this->db->order_by('trips_details.id');
     $result = $this->db->get()->result();
     $calculation_sheet_black_oil = array();
     foreach ($result as $record) {
         array_push($calculation_sheet_black_oil, new Calculation_Sheet($record));
     }
     /*--- Selecting every thing with destination shortage vouchers -----*/
     $this->select_calculation_sheet_stuff();
     $this->db->from("trips");
     $this->join_trips_with_every_thing();
     $this->join_trips_details_and_destination_shortage();
     $this->db->where('trips.active', 1);
     $this->db->where(array('trips.entryDate >=' => $keys['from_date'], 'trips.entryDate <=' => $keys['to_date']));
     if ($keys['company_id'] != 'all') {
         $this->db->where('trips.company_id', $keys['company_id']);
     }
     if ($keys['contractor_id'] != 'all') {
         $this->db->where('trips.contractor_id', $keys['contractor_id']);
     }
     if ($keys['product'] != 'all' && $keys['product'] != '') {
         $this->db->where('trips_details.product', $keys['product']);
     }
     if ($keys['product_type'] != 'all' && $keys['product_type'] != '') {
         if ($_GET['product_type'] == 'black oil') {
             $this->black_oil();
         }
         if ($_GET['product_type'] == 'white oil') {
             $this->white_oil();
         }
     }
     if (isset($keys['agent_type']) && isset($keys['agent_id'])) {
         switch ($keys['agent_type']) {
             case 'other_agents':
                 $this->db->where('voucher_entry.related_other_agent !=', 0);
                 if ($keys['agent_id'] != '') {
                     $this->db->where('voucher_entry.related_other_agent', $keys['agent_id']);
                 }
                 break;
             case 'customers':
                 $this->db->where('voucher_entry.related_customer !=', 0);
                 if ($keys['agent_id'] != '') {
                     $this->db->where('voucher_entry.related_customer', $keys['agent_id']);
                 }
                 break;
             case 'companies':
                 $this->db->where('voucher_entry.related_company !=', 0);
                 if ($keys['agent_id'] != '') {
                     $this->db->where('voucher_entry.related_company', $keys['agent_id']);
                 }
                 break;
             case 'carriage_contractors':
                 $this->db->where('voucher_entry.related_contractor !=', 0);
                 if ($keys['agent_id'] != '') {
                     $this->db->where('voucher_entry.related_contractor', $keys['agent_id']);
                 }
                 break;
         }
     }
     if (sizeof($details_ids_with_decanding_shortage) > 0) {
         $this->db->where_in('trips_details.id', $details_ids_with_destination_shortage);
     }
     $this->db->group_by('voucher_journal.id');
     $this->db->order_by('trips_details.id');
     $result = $this->db->get()->result();
     foreach ($result as $record) {
         array_push($calculation_sheet_black_oil, new Calculation_Sheet($record));
     }
     $grouped = Arrays::groupBy($calculation_sheet_black_oil, Functions::extractField('destination'), 'invoice_number');
     ksort($grouped);
     return $grouped;
 }
开发者ID:nomantufail,项目名称:viriklogistics,代码行数:101,代码来源:reports_model.php

示例7: all_routes_freights

 public function all_routes_freights($route_type = 'primary')
 {
     include_once APPPATH . "models/helperClasses/Route_Details.php";
     switch ($route_type) {
         case 'primary':
             $this->db->where('routes.type', 1);
             break;
         case 'secondary':
             $this->db->where('routes.type', 3);
             break;
         case 'secondary_local':
             $this->db->where('routes.type', 4);
             break;
         default:
             $this->db->where('routes.type', 1);
             break;
     }
     $this->db->select('routes.id as route_id, freights.id as freight_id,
             freights.startDate, freights.endDate, freights.freight,
             routes.source, routes.destination, routes.product,
     ');
     $this->db->from('routes');
     $this->db->join('freights', 'freights.route_id = routes.id', 'left');
     $this->db->where('routes.active', 1);
     /*$this->db->join('cities as sourceCity','sourceCity.id = routes.source','left');
       $this->db->join('cities as destinationCity','destinationCity.id = routes.destination','left');
       $this->db->join('products','products.id = routes.product','left');*/
     $this->db->order_by('freights.id', 'desc');
     $results = $this->db->get()->result();
     foreach ($results as &$record) {
         $record->route = $record->source . "_" . $record->destination . "_" . $record->product;
     }
     $grouped = Arrays::groupBy($results, Functions::extractField('route'));
     return $grouped;
 }
开发者ID:nomantufail,项目名称:virik_updating,代码行数:35,代码来源:routes_model.php

示例8: groupRawReportByRoute

 private function groupRawReportByRoute($report)
 {
     //adding extra_column
     foreach ($report as &$record) {
         $record->route_product_key = $record->source_id . "_" . $record->destination_id . "_" . $record->product_id;
     }
     // grouping by route_product_key and triming
     return $this->trimm_expense_report(Arrays::groupBy($report, Functions::extractField('route_product_key')));
 }
开发者ID:nomantufail,项目名称:virik_updating,代码行数:9,代码来源:IrfanTankerReport2.php

示例9: select

 /**
  * Generic select function
  *
  * @param {mixed} $paramValues
  * @param {string} $key (optional) Key field which can be used to group the output
  * @param {boolean} $cleanUp Do clean up of columns in query output
  */
 public function select($paramValues = null, $key = null, $cleanUp = true)
 {
     // If no key is supplied take default from JSON spec
     if (is_null($key)) {
         $key = $this->output->key;
     }
     $data = $this->execute($paramValues);
     // Keys should not always be cleaned up
     if ($cleanUp) {
         $this->cleanUp($data, 'keys', $key);
     }
     // Child defs should always be cleaned up
     $this->cleanUp($data, 'childDefs', $key);
     // We are ready if output is not an array of assocs
     if ($this->output->columns != 'all' || $this->output->rows != 'all') {
         return $data;
     }
     // Apply rows2columns transformation
     if (property_exists($this->output, 'rows2columns')) {
         $data = Arrays::rows2columns($data, $this->output->rows2columns->key, $this->output->rows2columns->name, $this->output->rows2columns->value);
     }
     // Apply grouping transformation
     if ($key && $this->output->group) {
         return Arrays::groupBy($data, $key, true);
     }
     // Apply key transformation
     if ($key) {
         return Arrays::toAssoc($data, $key);
     }
     return $data;
 }
开发者ID:wdiesveld,项目名称:tiny-queries-php-api,代码行数:38,代码来源:TinyQueries.php

示例10: tankers_income_statement

 public function tankers_income_statement($keys)
 {
     include_once APPPATH . "models/helperClasses/tankers_routes.php";
     include_once APPPATH . "models/helperClasses/income_statement_row.php";
     $this->db->select("voucher_journal.tanker_id, tankers.truck_number as tanker_number,\n                            SUM(voucher_entry.debit_amount) as total_expense,\n                            SUM(voucher_entry.credit_amount) as total_income,\n                            (SUM(voucher_entry.credit_amount) - SUM(voucher_entry.debit_amount)) as profit,\n                            account_titles.secondary_type,\n        ");
     $this->db->from('voucher_journal');
     $this->db->join('voucher_entry', 'voucher_entry.journal_voucher_id = voucher_journal.id', 'left');
     $this->db->join('account_titles', 'account_titles.id = voucher_entry.account_title_id', 'left');
     $this->db->join('tankers', 'tankers.id = voucher_journal.tanker_id', 'left');
     $this->db->where(array('voucher_journal.active' => 1, 'voucher_journal.ignored !=' => 1, 'voucher_journal.person_tid' => 'users.1', 'voucher_journal.tanker_id !=' => 0));
     $where = "(account_titles.type = 'expense' OR account_titles.type = 'income')";
     $this->db->where($where);
     $this->db->group_by('voucher_journal.tanker_id, account_titles.secondary_type');
     if ($keys['from'] != '') {
         $this->db->where('voucher_journal.voucher_date >=', $keys['from']);
     }
     if ($keys['to'] != '') {
         $this->db->where('voucher_journal.voucher_date <=', $keys['to']);
     }
     if ($keys['tanker_id'] != '') {
         $this->db->where_in('voucher_journal.tanker_id', $keys['tanker_id']);
     }
     if ($keys['customer_id'] != '') {
         $this->db->where('voucher_entry.related_customer', $keys['customer_id']);
     }
     //checking weather user demands Sorting or not
     /*if(isset($keys['sort']) && $keys['sort'] != ''){
           //$this->db->order_by($keys['sort']['sort_by'],$keys['sort']['order']);
           //$this->db->order_by('voucher_journal.id',$keys['sort']['order']);
       }else{
           $this->db->order_by('voucher_journal.tanker_id','asc');
       }*/
     /////////////////////////////////////////////////////
     $result = $this->db->get()->result();
     $grouped = Arrays::groupBy($result, Functions::extractField('tanker_id'));
     $income_statement = array();
     foreach ($grouped as $group) {
         $income_statement_row = new Income_Statement_Row();
         foreach ($group as $record) {
             $income_statement_row->tanker_id = $record->tanker_id;
             $income_statement_row->tanker_number = $record->tanker_number;
             if ($record->secondary_type == 'other_expense') {
                 $income_statement_row->other_expense = $record->total_expense;
             }
             if ($record->secondary_type == 'shortage_expense') {
                 $income_statement_row->shortage_expense = $record->total_expense;
             }
             $income_statement_row->total_income += $record->total_income;
             $income_statement_row->secondary_type = $record->secondary_type;
         }
         $income_statement_row->profit = $income_statement_row->total_income - ($income_statement_row->shortage_expense + $income_statement_row->other_expense);
         array_push($income_statement, $income_statement_row);
     }
     usort($income_statement, array("Sorting_Model", "sort_tanker_income_statement"));
     /*Getting the routes information*/
     $this->db->select("trips.tanker_id, source_cities.cityName as source, destination_cities.cityName as destination,\n                            COUNT(trips_details.source) as route_counter,\n        ");
     $this->db->from('trips');
     $this->db->join('trips_details', 'trips_details.trip_id = trips.id', 'left');
     $this->db->join('cities as source_cities', 'source_cities.id = trips_details.source', 'left');
     $this->db->join('cities as destination_cities', 'destination_cities.id = trips_details.destination', 'left');
     $this->db->group_by(array('trips.tanker_id', 'trips_details.source', 'trips_details.destination'));
     $this->db->where(array('trips.active' => 1));
     if ($keys['from'] != '') {
         $this->db->where('trips.entryDate >=', $keys['from']);
     }
     if ($keys['to'] != '') {
         $this->db->where('trips.entryDate <=', $keys['to']);
     }
     if ($keys['tanker_id'] != '') {
         $this->db->where_in('trips.tanker_id', $keys['tanker_id']);
     }
     if ($keys['customer_id'] != '') {
         $this->db->where('trips.customer_id', $keys['customer_id']);
     }
     $result = $this->db->get()->result();
     $tankers_routes = new Tankers_Routes($result);
     /**********************************/
     return array('tankers_routes' => $tankers_routes, 'income_statement' => $income_statement);
 }
开发者ID:nomantufail,项目名称:viriklogistics,代码行数:79,代码来源:accounts_model.php

示例11: __construct

 public function __construct($statuses)
 {
     $this->statuses = Arrays::groupBy($statuses, Functions::extractField('trip_detail_id'));
 }
开发者ID:nomantufail,项目名称:viriklogistics,代码行数:4,代码来源:dr_cr_status_manager.php

示例12: groupShortageDataByTripDetailId

 public function groupShortageDataByTripDetailId()
 {
     $shortagesData = Arrays::groupBy($this->getShortagesData(), Functions::extractField('trip_detail_id'));
     return $shortagesData;
 }
开发者ID:nomantufail,项目名称:virik_updating,代码行数:5,代码来源:CommitShortages.php


注:本文中的Arrays::groupBy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。