- var_dump: documentation ( source)
- array_walk: documentation ( source)
<?php
$regions = [
'int' => 1,
'nl' => 2,
'be' => 4,
'us' => 8,
'as' => 16,
'za' => 32,
];
for ($i = 0; $i < 1 << count($regions); $i++)
array_walk($regions, function ($x, $region) use (&$list, $i) { if ($i & $x == 0) return; if (isset($list[$region])) $list[$region] .= ",$x"; else $list[$region] = $x; });
var_dump($list);