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
Output for git.master, git.master_jit, rfc.property-hooks
array ( 0 => (object) array( 'entry_id' => 1, 'created_at' => '2017-04-03', 'Name' => 'Smith', 'Address' => 'Saniply', 'Profession' => 'Student', ), 1 => (object) array( 'entry_id' => 2, 'created_at' => '2017-07-05', 'Name' => 'John', 'Address' => 'Aviero', 'Profession' => 'Businessman', ), )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
52.92 ms | 406 KiB | 5 Q