<?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