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) * 2 - $i > 0; ++$i%$x?:$i+=$x){var_dump($i, $x, end($regions) * 2 - $i); if (isset($list[$region])) $list[$region] .= ",$i"; else $list[$region] = $i;} var_dump($list);

preferences:
36.26 ms | 402 KiB | 5 Q