Да, функция шикарна.. Кстати аналогично я и раньше создавал, только сам забыл уже.
Чтобы тебе было проще, я немного адаптирую ту функцию
$result = array();
$combination = array();
function combinations(array $myArray, $choose) {
global $result, $combination;
$n = count($myArray);
function inner ($start, $choose_, $arr, $n) {
global $result, $combination;
if ($choose_ == 0) array_push($result,$combination);
else for ($i = $start; $i <= $n - $choose_; ++$i) {
array_push($combination, $arr[$i]);
inner($i + 1, $choose_ - 1, $arr, $n);
array_pop($combination);
}
}
inner(0, $choose, $myArray, $n);
foreach ($result as $key => $value) {
echo ''.implode('',$value).'<br>';
}
}
echo combinations(array(1,2,3,4,5), 2);
здесь вывод идёт сразу нужных тебе значений, только каждое с новой строки. Ты как удобно себе вывод настрой заместо <br>.