3v4l.org

run code in 300+ PHP versions simultaneously
<?php $input = [ [1,3], [1,6], [7,8] ]; $available = [6=>0, 1=>1]; //product $result = array_reduce(array_slice($input, 1), function($c, $x) { return call_user_func_array('array_merge', array_map(function($y) use ($c) { return array_map(function($z) use ($y) { return array_merge((array)$z, (array)$y); }, $c); }, $x) ); }, current($input)); //filter: $result = array_filter($result, function($tuple) use ($available) { foreach(array_count_values($tuple) as $value=>$count) { if(isset($available[$value]) && $available[$value]<$count) { return false; } } return true; }); var_dump($result);
Output for git.master, git.master_jit, rfc.property-hooks
array(2) { [1]=> array(3) { [0]=> int(3) [1]=> int(1) [2]=> int(7) } [5]=> array(3) { [0]=> int(3) [1]=> int(1) [2]=> int(8) } }

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:
65.23 ms | 401 KiB | 8 Q