本文整理汇总了PHP中Collection::groupBy方法的典型用法代码示例。如果您正苦于以下问题:PHP Collection::groupBy方法的具体用法?PHP Collection::groupBy怎么用?PHP Collection::groupBy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Collection
的用法示例。
在下文中一共展示了Collection::groupBy方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testGroupBy
public function testGroupBy()
{
$collection = new Collection(['first' => new Bar('a'), 'third' => new Bar('c'), 'fourth' => new Bar('c'), 'second' => new Bar('b')]);
$collections = $collection->groupBy(function (Bar $bar) {
return $bar->foo;
});
$this->assertCount(3, $collections);
$this->assertSame($collection['first'], $collections['a']['first']);
$this->assertSame($collection['second'], $collections['b']['second']);
$this->assertSame($collection['third'], $collections['c']['third']);
$this->assertSame($collection['fourth'], $collections['c']['fourth']);
}
示例2: getDoctorsListCount
public function getDoctorsListCount($latitude = 0, $longitude = 0, $query = array())
{
$this->data = DB::table('doctors');
$this->data->leftJoin('doctors_details AS dhospital', 'doctors.id', '=', 'dhospital.doctor_id');
$this->data->leftJoin('listing_hospitals', 'dhospital.detail_id', '=', 'listing_hospitals.id');
$this->data->leftJoin('doctors_details AS dhmo', 'doctors.id', '=', 'dhmo.doctor_id');
$this->data->leftJoin('listing_hmo', 'dhmo.detail_id', '=', 'listing_hmo.id');
$this->data->leftJoin('doctors_specialization', 'doctors.id', '=', 'doctors_specialization.doctor_id');
$this->data->leftJoin('location_cities', 'listing_hospitals.city', '=', 'location_cities.id');
$this->data->leftJoin('location_provinces', 'listing_hospitals.province', '=', 'location_provinces.id');
$this->data->select(DB::raw("doctors.*, dhospital.detail_id as hospital_id, listing_hospitals.listing_title as hospital_title, listing_hospitals.latitude, listing_hospitals.longitude, listing_hospitals.street, location_cities.city_name, location_provinces.province_name, dhmo.detail_id as hmo_id, listing_hmo.listing_title as hmo_title, doctors_specialization.specialization_id, (6371 * acos (cos ( radians(?) ) * cos( radians( listing_hospitals.latitude ) ) * cos( radians( listing_hospitals.longitude ) - radians(?) ) + sin ( radians(?) ) * sin( radians( listing_hospitals.latitude ) ))) AS distance"))->setBindings([$latitude, $longitude, $latitude]);
$this->data->where('dhospital.detail_type', '=', 1);
$this->data->where('dhmo.detail_type', '=', 4);
if (isset($query['specializations'])) {
$this->data->whereIn('doctors_specialization.specialization_id', $query['specializations']);
}
if (isset($query['locations'])) {
$this->data->whereIn('listing_hospitals.city', $query['locations']);
}
$this->data->groupBy('doctors.id');
// }
return $this->data->get();
}
示例3: testGroup
public function testGroup()
{
$collection = new Collection();
$collection->user1 = array('username' => 'peter', 'group' => 'admin');
$collection->user2 = array('username' => 'paul', 'group' => 'admin');
$collection->user3 = array('username' => 'mary', 'group' => 'client');
$groups = $collection->groupBy('group');
$this->assertEquals(2, $groups->admin()->count());
$this->assertEquals(1, $groups->client()->count());
$firstAdmin = $groups->admin()->first();
$this->assertEquals('peter', $firstAdmin['username']);
}
示例4: getSupplierCollection
/**
* For a given product, retrieves its suppliers
*
* @param int $id_product
* @param int $group_by_supplier
* @return Collection
*/
public static function getSupplierCollection($id_product, $group_by_supplier = true)
{
$suppliers = new Collection('ProductSupplier');
$suppliers->where('id_product', '=', (int) $id_product);
if ($group_by_supplier) {
$suppliers->groupBy('id_supplier');
}
return $suppliers;
}
示例5: getDataGeneration
public function getDataGeneration()
{
$datas = array();
$order_to_change_state = array();
$saved_product = array();
$datas_quantity = array();
$customer_concerned = array();
$concerned_id_order_detail = array();
$orders = Db::getInstance()->executeS('
SELECT a.id_order
FROM `' . _DB_PREFIX_ . 'orders` a
LEFT JOIN `' . _DB_PREFIX_ . 'customer` c ON (c.`id_customer` = a.`id_customer`)
WHERE a.current_state = ' . (int) $this->generate_order_state . '
ORDER BY a.`id_order` DESC');
$unselected_orders_array = array();
/* if (isset( $this->context->cookie->unselected_orders) && !empty( $this->context->cookie->unselected_orders))
{
$unselected_orders_array = Tools::unSerialize( $this->context->cookie->unselected_orders);
} */
if (Tools::getValue('unselected_orders_list', false)) {
$unselected_orders_array = explode(',', Tools::getValue('unselected_orders_list'));
$unselected_orders_array = array_map('trim', $unselected_orders_array);
}
if (!empty($orders)) {
foreach ($orders as $order) {
$id_order = (int) $order['id_order'];
if (!in_array($id_order, $unselected_orders_array)) {
$order = new Order((int) $id_order);
if (!Validate::isLoadedObject($order)) {
throw new PrestaShopException('object oder simulate can\'t be loaded');
}
$order_details = $order->getOrderDetailList();
if (!empty($order_details)) {
$order_to_change_state[] = (int) $id_order;
foreach ($order_details as $order_detail) {
$id_supplier = 0;
$product_key = $order_detail['product_id'] . '_' . $order_detail['product_attribute_id'];
$product = new Product($order_detail['product_id'], $order_detail['product_attribute_id']);
// update selling price to purchase price
$order_detail['unit_price_tax_excl'] = ErpStock::getWholesalePrice($order_detail['product_id'], $order_detail['product_attribute_id']);
$order_detail['tax_rate'] = Tax::getProductTaxRate($order_detail['product_id']);
$order_detail['unit_price_tax_incl'] = $order_detail['unit_price_tax_excl'] * (1 + (double) $order_detail['tax_rate'] / 100);
if (empty($product->id_supplier)) {
// Get already associated suppliers
$associated_suppliers = new Collection('ProductSupplierCore');
$associated_suppliers->where('id_product', '=', (int) $product->id);
$associated_suppliers->groupBy('id_supplier');
foreach ($associated_suppliers as $associated_supplier) {
$id_supplier = $associated_supplier->id_supplier;
}
} else {
$id_supplier = $product->id_supplier;
}
if (isset($saved_product[$product_key])) {
$datas_quantity[$product_key] += $order_detail['product_quantity'];
$customer_concerned[$product_key][] = $order->id_customer;
$concerned_id_order_detail[$product_key][] = array('id_order_detail' => $order_detail['id_order_detail'], 'id_customer' => $order->id_customer);
$order_detail['total_product_quantity'] = $datas_quantity[$product_key];
$order_detail['customer_concerned'] = $customer_concerned[$product_key];
$order_detail['concerned_id_order_detail'] = $concerned_id_order_detail[$product_key];
$datas[$id_supplier][$product_key] = $order_detail;
} else {
$product_quantity = $order_detail['product_quantity'];
$order_detail['total_product_quantity'] = $product_quantity;
$order_detail['customer_concerned'][] = $order->id_customer;
$order_detail['concerned_id_order_detail'][] = array('id_order_detail' => $order_detail['id_order_detail'], 'id_customer' => $order->id_customer);
$datas[$id_supplier][$product_key] = $order_detail;
$datas_quantity[$product_key] = $product_quantity;
$customer_concerned[$product_key][] = $order->id_customer;
$concerned_id_order_detail[$product_key][] = array('id_order_detail' => $order_detail['id_order_detail'], 'id_customer' => $order->id_customer);
$saved_product[$product_key] = true;
}
}
}
}
}
}
$data_return = array();
foreach ($datas as $id_supplier => $data) {
if ($id_supplier > 0) {
$product_list = array();
foreach ($data as $product_key => $product_info) {
$customer_concerned = '';
$customer_concerned_arr = array_unique($product_info['customer_concerned']);
foreach ($customer_concerned_arr as $id_customer) {
$customer = new Customer($id_customer);
$customer_concerned .= $customer->lastname . ' ' . $customer->firstname . ', ';
}
$total_te = $product_info['unit_price_tax_excl'] * $product_info['total_product_quantity'];
$total_ti = $product_info['unit_price_tax_incl'] * $product_info['total_product_quantity'];
$product_info['total_price_tax_excl'] = Tools::displayPrice($total_te);
$product_info['total_price_tax_incl'] = Tools::displayPrice($total_ti);
$product_info['unit_price_tax_excl'] = $product_info['unit_price_tax_excl'];
$product_info['customer_concerned'] = Tools::substr($customer_concerned, 0, Tools::strlen($customer_concerned) - 2);
$product_info['customer_id'] = $customer_concerned_arr;
$product_list[] = $product_info;
}
$data_return[$id_supplier] = $product_list;
}
}
//.........这里部分代码省略.........
示例6: getTermsUsedForTaxonomy
public static function getTermsUsedForTaxonomy($taxonomy)
{
$terms = self::getTermsUsed();
$terms = Collection::groupBy($terms, 'taxonomy');
return array_key_exists($taxonomy, $terms) ? $terms[$taxonomy] : null;
}