3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = array( 3 => [4095, 651], 4095 => [3], 651 => [4432], 4432 => [3, 651], 92 => [45], 45 => [92], ); function getChildren($ind_ar,$prev_ar,$data, $rem){ $tmp = []; $mark = 0; foreach($ind_ar as $ind){ foreach($data[$ind] as $new_val){ if(!in_array($new_val,$prev_ar) && $new_val != $ind && $new_val != $rem){ $mark = 1; $tmp[] = $new_val; } foreach($data[$new_val] as $new){ if(!in_array($new,$prev_ar) && $new != $ind && $new != $rem){ $mark = 1; $tmp[] = $new; } } } } $res_ar = $prev_ar; if(!empty($tmp)) $res_ar = array_unique(array_merge($tmp,$prev_ar)); if($mark) $res_ar = getChildren($tmp,$res_ar,$data, $rem); return $res_ar; } foreach($data as $in => &$data_val) { $data_val = getChildren([$in],$data_val,$data, $in); sort($data_val); } print_r($data);
Output for git.master, git.master_jit, rfc.property-hooks
Array ( [3] => Array ( [0] => 651 [1] => 4095 [2] => 4432 ) [4095] => Array ( [0] => 3 [1] => 651 [2] => 4432 ) [651] => Array ( [0] => 3 [1] => 4095 [2] => 4432 ) [4432] => Array ( [0] => 3 [1] => 651 [2] => 4095 ) [92] => Array ( [0] => 45 ) [45] => Array ( [0] => 92 ) )

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