3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = array( array( "name" => "SomeName", "type" => "A"), array( "name" => "SomeName", "type" => "A"), array( "name" => "SomeName", "type" => "A"), array( "name" => "SomeName", "type" => "A"), array( "name" => "SomeName", "type" => "A"), array( "name" => "SomeName", "type" => "B"), array( "name" => "SomeName", "type" => "B"), array( "name" => "SomeName", "type" => "B"), array( "name" => "SomeName", "type" => "C"), array( "name" => "SomeName", "type" => "C") ); // split data into arrays of distinct type $buckets = array_reduce($data, function($result, $item) { $type = $item["type"]; if (!isset($result[$type])) { $result[$type] = []; } array_push($result[$type], $item); return $result; }, []); // sort buckets by size usort($buckets, function($a, $b) { return count($b) - count($a); }); // merge buckets to single array sorted by type // and split to chunks of size of the largest bucket $table = array_chunk(array_merge(...$buckets), count($buckets[0])); // compute final array by merging each column $result = []; foreach (array_keys($table[0]) as $i) { $result = array_merge($result, array_column($table, $i)); } print_r($result);
Output for git.master, git.master_jit, rfc.property-hooks
Array ( [0] => Array ( [name] => SomeName [type] => A ) [1] => Array ( [name] => SomeName [type] => B ) [2] => Array ( [name] => SomeName [type] => A ) [3] => Array ( [name] => SomeName [type] => B ) [4] => Array ( [name] => SomeName [type] => A ) [5] => Array ( [name] => SomeName [type] => B ) [6] => Array ( [name] => SomeName [type] => A ) [7] => Array ( [name] => SomeName [type] => C ) [8] => Array ( [name] => SomeName [type] => A ) [9] => Array ( [name] => SomeName [type] => C ) )

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:
82.24 ms | 408 KiB | 5 Q