3v4l.org

run code in 300+ PHP versions simultaneously
<?php function nextAssoc($assoc) { if(false !== ($pos = strrpos($assoc, '01'))) { $assoc[$pos] = '1'; $assoc[$pos+1] = '0'; return substr($assoc, 0, $pos+2). str_repeat('0', substr_count(substr($assoc, $pos+2), '0')). str_repeat('1', substr_count(substr($assoc, $pos+2), '1')); } return false; } function getAssoc(array $data, $count=2, $split=true) { if(count($data)<$count) { return null; } $assoc = str_repeat('0', count($data)-$count).str_repeat('1', $count); $result = []; do { $result[]=array_intersect_key($data, array_filter(str_split($assoc))); } while($assoc=nextAssoc($assoc)); return $split?array_chunk($result, (int)(count($data)/$count)):$result; } $data = [1,2,3,4,5,6]; print_r(getAssoc($data, 2)); print_r(getAssoc($data, 3));
Output for git.master, git.master_jit, rfc.property-hooks
Array ( [0] => Array ( [0] => Array ( [4] => 5 [5] => 6 ) [1] => Array ( [3] => 4 [5] => 6 ) [2] => Array ( [3] => 4 [4] => 5 ) ) [1] => Array ( [0] => Array ( [2] => 3 [5] => 6 ) [1] => Array ( [2] => 3 [4] => 5 ) [2] => Array ( [2] => 3 [3] => 4 ) ) [2] => Array ( [0] => Array ( [1] => 2 [5] => 6 ) [1] => Array ( [1] => 2 [4] => 5 ) [2] => Array ( [1] => 2 [3] => 4 ) ) [3] => Array ( [0] => Array ( [1] => 2 [2] => 3 ) [1] => Array ( [0] => 1 [5] => 6 ) [2] => Array ( [0] => 1 [4] => 5 ) ) [4] => Array ( [0] => Array ( [0] => 1 [3] => 4 ) [1] => Array ( [0] => 1 [2] => 3 ) [2] => Array ( [0] => 1 [1] => 2 ) ) ) Array ( [0] => Array ( [0] => Array ( [3] => 4 [4] => 5 [5] => 6 ) [1] => Array ( [2] => 3 [4] => 5 [5] => 6 ) ) [1] => Array ( [0] => Array ( [2] => 3 [3] => 4 [5] => 6 ) [1] => Array ( [2] => 3 [3] => 4 [4] => 5 ) ) [2] => Array ( [0] => Array ( [1] => 2 [4] => 5 [5] => 6 ) [1] => Array ( [1] => 2 [3] => 4 [5] => 6 ) ) [3] => Array ( [0] => Array ( [1] => 2 [3] => 4 [4] => 5 ) [1] => Array ( [1] => 2 [2] => 3 [5] => 6 ) ) [4] => Array ( [0] => Array ( [1] => 2 [2] => 3 [4] => 5 ) [1] => Array ( [1] => 2 [2] => 3 [3] => 4 ) ) [5] => Array ( [0] => Array ( [0] => 1 [4] => 5 [5] => 6 ) [1] => Array ( [0] => 1 [3] => 4 [5] => 6 ) ) [6] => Array ( [0] => Array ( [0] => 1 [3] => 4 [4] => 5 ) [1] => Array ( [0] => 1 [2] => 3 [5] => 6 ) ) [7] => Array ( [0] => Array ( [0] => 1 [2] => 3 [4] => 5 ) [1] => Array ( [0] => 1 [2] => 3 [3] => 4 ) ) [8] => Array ( [0] => Array ( [0] => 1 [1] => 2 [5] => 6 ) [1] => Array ( [0] => 1 [1] => 2 [4] => 5 ) ) [9] => Array ( [0] => Array ( [0] => 1 [1] => 2 [3] => 4 ) [1] => Array ( [0] => 1 [1] => 2 [2] => 3 ) ) )

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:
45.4 ms | 413 KiB | 8 Q