3v4l.org

run code in 300+ PHP versions simultaneously
<?php function find_pairs($array) { // re-index to 0 $array = array_values($array['parent_id']); // sort so the longest arrays are first usort($array, function ($a, $b) { return count($b) - count($a); }); // output array $pairs = array(); for ($i = 0, $j = 1; $i < count($array) - 1; $i++) { if (!count($array[$i])) continue; while ($j <= $i || $j < count($array) && !count($array[$j])) $j++; while (count($array[$i]) && isset($array[$j]) && count($array[$j])) { $pairs[] = array(array_shift($array[$i]), array_shift($array[$j])); // exhausted other arrays elements? while ($j < count($array) && !count($array[$j])) $j++; } } return $pairs; } $array = array ( 'parent_id' => array ( 0 => array ( 0 => 12 ), 1 => array ( 0 => 22 ), 2 => array ( 0 => 23, 1 => 24 ) ) ); print_r(find_pairs($array)); $array = array ( 'parent_id' => array ( 9 => array ( 0 => 12 ), 20 => array ( 0 => 25, 1 => 22 ), 21 => array ( 0 => 23, 1 => 24 ) ) ); print_r(find_pairs($array)); $array = array ( 'parent_id' => array ( 9 => array ( 0 => 11, 1 => 12 ), 10 => array ( 0 => 13, 1 => 14 ), 20 => array ( 0 => 21, 1 => 22 ), 21 => array ( 0 => 23 ) ) ); print_r(find_pairs($array));
Output for git.master, git.master_jit, rfc.property-hooks
Array ( [0] => Array ( [0] => 23 [1] => 12 ) [1] => Array ( [0] => 24 [1] => 22 ) ) Array ( [0] => Array ( [0] => 25 [1] => 23 ) [1] => Array ( [0] => 22 [1] => 24 ) ) Array ( [0] => Array ( [0] => 11 [1] => 13 ) [1] => Array ( [0] => 12 [1] => 14 ) [2] => Array ( [0] => 21 [1] => 23 ) )

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:
28.49 ms | 407 KiB | 5 Q