Есть массив [1, 2, 3, 4, 5]
Нужно написать такую функцию на PHP, чтобы она получала всевозможные комбинации массива без учета перестановок, те комбинация "41" и "14" считалась как одно и то же и в результирующий массив не входила.
Те ответ должен быть такой (набор массивов)
- 1
- 1 2
- 1 2 3
- 1 2 3 4
- 1 2 3 4 5
- 1 3
- 1 3 4
- 1 3 4 5
- 1 4
- 1 4 5
- 1 5
- 2
- 2 3
- 2 3 4
- 2 3 4 5
- 2 4
- 2 4 5
- 2 5
- 3
- 3 4
- 3 4 5
- 3 5
- 4
- 4 5
Я постарался написать так, но не работает
function getPermutations(array $values)
{
$temp[] = $values;
foreach ($values as $i) {
foreach ($values as $j) {
$temp[] = array_unique([$i, $j]);
}
}
foreach ($temp as $i => $k) {
sort($k);
$temp[$i] = $k;
}
$array = array_unique($temp, SORT_REGULAR);
return array_values($array);
}