FOF30\Utils\Collection::groupBy PHP Method

groupBy() public method

Group an associative array by a field or Closure value.
public groupBy ( callable | string $groupBy ) : Collection
$groupBy callable | string
return Collection
    public function groupBy($groupBy)
    {
        $results = array();
        foreach ($this->items as $key => $value) {
            $key = is_callable($groupBy) ? $groupBy($value, $key) : array_get($value, $groupBy);
            $results[$key][] = $value;
        }
        return new static($results);
    }

Usage Example

Esempio n. 1
0
 public function testGroupByAttribute()
 {
     $data = new Collection(array(array('rating' => 1, 'name' => '1'), array('rating' => 1, 'name' => '2'), array('rating' => 2, 'name' => '3')));
     $result = $data->groupBy('rating');
     $this->assertEquals(array(1 => array(array('rating' => 1, 'name' => '1'), array('rating' => 1, 'name' => '2')), 2 => array(array('rating' => 2, 'name' => '3'))), $result->toArray());
 }