protected function combiner($names)
{
$return = array('');
$names = array_values($names);
for ($i = 0, $c = count($names); $i < $c; $i++) {
$buffer = array();
foreach ($return as $k => $v) {
$buffer[] = $k % 2 == 0 ? $v : $v . $names[$i];
$buffer[] = $k % 2 == 0 ? $v . $names[$i] : $v;
}
$return = $buffer;
}
return array_filter($return);
}