3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ (object) ['graduateYear' => 'Class of 2007', 'id' => 1, 'lastsName' => 'Igbashio', 'firstName' => 'Kalifort'], (object) ['graduateYear' => 'Class of 2007', 'id' => 2, 'lastsName' => 'Usman', 'firstName' => 'Bello'], (object) ['graduateYear' => 'Class of 2007', 'id' => 3, 'lastsName' => 'Manasseh', 'firstName' => 'Isa'], (object) ['graduateYear' => 'Class of 2008', 'id' => 4, 'lastsName' => 'Igbashio', 'firstName' => 'Sansa'], (object) ['graduateYear' => 'Class of 2008', 'id' => 5, 'lastsName' => 'Yusuf', 'firstName' => "Sa'atu"], (object) ['graduateYear' => 'Class of 2008', 'id' => 6, 'lastsName' => 'Rimamtse', 'firstName' => 'Bleesing'], ]; $grouped = []; foreach ($array as $obj) { sscanf($obj->graduateYear, 'Class of %d', $year); unset($obj->graduateYear); $grouped[$year]['title'] = $year; // doesn't matter that this is overwritten over and over $grouped[$year]['data'][] = $obj; } var_export(array_values($grouped));

preferences:
31.41 ms | 406 KiB | 5 Q