3v4l.org

run code in 300+ PHP versions simultaneously
<?php $regions = [ 'int' => 1, 'nl' => 2, 'be' => 4, 'us' => 8, 'as' => 16, 'za' => 32, ]; for ($i = 0; ++$i < 1 << count($regions); array_walk($regions, function ($x, $region) use (&$list, $i) { if (!($i & $x)) return; if (isset($list[$region])) $list[$region] .= ",$i"; else $list[$region] = $i; })); var_dump($list); unset($list); foreach ($regions as $region => $x) for ($i = $x; end($regions) << 1 - $i > 0; ++$i%$x?$i+=$x:0) if (isset($list[$region])) $list[$region] .= ",$i"; else $list[$region] = $i; var_dump($list);

preferences:
43.27 ms | 402 KiB | 5 Q