3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array=[ (object)['entry_id'=>1,'created_at'=>'2017-04-03','meta_key'=>'Name','meta_value'=>'Smith'], (object)['entry_id'=>1,'created_at'=>'2017-04-03','meta_key'=>'Address','meta_value'=>'Saniply'], (object)['entry_id'=>1,'created_at'=>'2017-04-03','meta_key'=>'Profession','meta_value'=>'Student'], (object)['entry_id'=>2,'created_at'=>'2017-07-05','meta_key'=>'Name','meta_value'=>'John'], (object)['entry_id'=>2,'created_at'=>'2017-07-05','meta_key'=>'Address','meta_value'=>'Aviero'], (object)['entry_id'=>2,'created_at'=>'2017-07-05','meta_key'=>'Profession','meta_value'=>'Businessman'] ]; foreach($array as $obj){ // iterate all objs $id=$obj->entry_id; // cache for more readable code if(!isset($result[$id])){ // first occurrence of entry_id $result[$id]=new \stdClass(); // avoid Warning: Creating default object from empty value $result[$id]->entry_id=$id; // store entry_id $result[$id]->created_at=$obj->created_at; // store created_at } $result[$id]->{$obj->meta_key}=$obj->meta_value; // unconditionally store meta_key and meta_value } var_export(array_values($result)); // remove temporary indexes and display

preferences:
27.91 ms | 405 KiB | 5 Q