php - group objects based on their attribute values -


this data looks like

array (size=2)   0 =>      array (size=6)       'name' => string 'a new event' (length=11)       'start_time' => string '2015' (length=4)       'end_time' => string '2015' (length=4)       'subscription_start_time' => string '2015' (length=4)       'subscription_end_time' => string '2015' (length=4)       'capacity' => string '5' (length=1)   1 =>      array (size=6)       'name' => string 'a new event 2' (length=13)       'start_time' => string '2015' (length=4)       'end_time' => string '2015' (length=4)       'subscription_start_time' => string '2015' (length=4)       'subscription_end_time' => string '2015' (length=4)       'capacity' => string '5' (length=1) 

now see start_time property in both objects.. want group objects same start_time when data of 100 objects can loop through them , put objects same start_time in single array of objects in object...

i know simple looping of foreach been long since have dealt object grouping confusing me now. ?

try following.

function groupby($array, $key) {     $groupeddata = [];     foreach ($array $value) {         if ( ! array_key_exists($value[$key], $groupeddata)) {             $groupeddata[$value[$key]] = [];         }         $groupeddata[$value[$key]][] = $value;     }     return $groupeddata; } 

Comments