2017 © Pedro Peláez
 

library group_collection

Permite agrupar arreglos

image

manuelj555/group_collection

Permite agrupar arreglos

  • Wednesday, July 15, 2015
  • by manuelj555
  • Repository
  • 1 Watchers
  • 0 Stars
  • 469 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 11 % Grown

The README.md

Group Collection, (*1)

================, (*2)

Permite agrupar arreglos e iteradores de manera simple, ejemplo:, (*3)

<?php

use K2\GroupCollection\GroupCollection;

$array = array(
  array('register_year' => 2011, 'user' => "Pedro"),
  array('register_year' => 2010, 'user' => "Carlos"),
  array('register_year' => 2010, 'user' => "Maria"),
  array('register_year' => 2011, 'user' => "Luis"),
  array('register_year' => 2010, 'user' => "Miguel"),
);

$grouped = new GroupCollection($array, function($item){ return $item['register_year']; });

foreach($grouped as $itemsYear){

  echo '

' . $itemsYear . '

'; foreach($itemsYear as $item){ echo $item['user'] . '<br/>'; } }

Agrupando por Año/Mes:, (*4)

<?php

use K2\GroupCollection\GroupCollection;

$array = array(
  array('register_date' => new Datetime("20-02-2010"), 'user' => "Pedro"),
  array('register_date' => new Datetime("04-02-2010"), 'user' => "Carlos"),
  array('register_date' => new Datetime("01-05-2011"), 'user' => "Maria"),
  array('register_date' => new Datetime("20-02-2011"), 'user' => "Luis"),
  array('register_date' => new Datetime("25-06-2011"), 'user' => "Miguel"),
);

$grouped = new GroupCollection($array, function($item){
  return $item['register_date']->format('Y-m'); 
});

foreach($grouped as $itemsYearMonth){

  echo '

' . $itemsYearMonth . '

'; foreach($itemsYearMonth as $item){ echo $item['user'] . '<br/>'; } }

El callback puede devolver un objeto:, (*5)

<?php

use K2\GroupCollection\GroupCollection;

$companyGoogle = new Company("Google");
$companyTwitter = new Company("Twitter");

$userGoogle1 = new User("Pedro");
$userGoogle2 = new User("Carlos");
$userGoogle3 = new User("Maria");

$userGoogle1->setCompany($companyGoogle);
$userGoogle2->setCompany($companyGoogle);
$userGoogle3->setCompany($companyGoogle);

$userTwitter1 = new User("Miguel");
$userTwitter2 = new User("Luis");
$userTwitter3 = new User("Carolina");

$userTwitter1->setCompany($companyTwitter);
$userTwitter2->setCompany($companyTwitter);
$userTwitter3->setCompany($companyTwitter);

$users = array($userGoogle1, $userGoogle3, $userGoogle3, $userTwitter1, $userTwitter3, $userTwitter3);

$grouped = new GroupCollection($users, function($user){
  return $user->getCompany(); //el callback puede retornar un objeto ó array
});

foreach($grouped as $companyUsers){

  echo '

' . $companyUsers->getTitle()->getName() . '

'; foreach($companyUsers as $user){ echo $user->getName() . '<br/>'; } }

The Versions

15/07 2015

dev-master

9999999-dev

Permite agrupar arreglos

  Sources   Download

The Requires

  • php >=5.3.3