В Laravel для этого есть Collection и groupBy.
Что бы использовать Collection без Laravel,
установи:
composer require tightenco/collect
<?php
require '/vendor/autoload.php';
use Illuminate\Support\Collection;
$array = array(
array('id' => '7', 'name' => 'foo'),
array('id' => '7', 'name' => 'foo2'),
array('id' => 10, 'name' => 'bar'),
array('id' => 10, 'name' => 'bar2'),
array('id' => 11, 'name' => 'bar3')
);
$collection = new Collection($array);
$grouped = $collection->groupBy('id');
$grouped->each(function ($item, $key) {
print_r($key . PHP_EOL);
print_r($item);
});