<?php
function getAllCombinations(array $arr, int $n, array $selected = [], int $startIndex = 0): array
{
if (!$n) {
return [array_merge($selected, [array_product($selected)])]; // generate payload
}
$result = [];
$count = count($arr);
for ($i = $startIndex; $i < $count; ++$i) {
array_push(
$result,
...getAllCombinations($arr, $n - 1, array_merge($selected, [$arr[$i]]), $i + 1)
);
}
return $result;
}
$primes = [2, 3, 5, 7, 11, 13, 17, 19, 23];
var_export(getAllCombinations($primes, 4));
- Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- array (
0 =>
array (
0 => 2,
1 => 3,
2 => 5,
3 => 7,
4 => 210,
),
1 =>
array (
0 => 2,
1 => 3,
2 => 5,
3 => 11,
4 => 330,
),
2 =>
array (
0 => 2,
1 => 3,
2 => 5,
3 => 13,
4 => 390,
),
3 =>
array (
0 => 2,
1 => 3,
2 => 5,
3 => 17,
4 => 510,
),
4 =>
array (
0 => 2,
1 => 3,
2 => 5,
3 => 19,
4 => 570,
),
5 =>
array (
0 => 2,
1 => 3,
2 => 5,
3 => 23,
4 => 690,
),
6 =>
array (
0 => 2,
1 => 3,
2 => 7,
3 => 11,
4 => 462,
),
7 =>
array (
0 => 2,
1 => 3,
2 => 7,
3 => 13,
4 => 546,
),
8 =>
array (
0 => 2,
1 => 3,
2 => 7,
3 => 17,
4 => 714,
),
9 =>
array (
0 => 2,
1 => 3,
2 => 7,
3 => 19,
4 => 798,
),
10 =>
array (
0 => 2,
1 => 3,
2 => 7,
3 => 23,
4 => 966,
),
11 =>
array (
0 => 2,
1 => 3,
2 => 11,
3 => 13,
4 => 858,
),
12 =>
array (
0 => 2,
1 => 3,
2 => 11,
3 => 17,
4 => 1122,
),
13 =>
array (
0 => 2,
1 => 3,
2 => 11,
3 => 19,
4 => 1254,
),
14 =>
array (
0 => 2,
1 => 3,
2 => 11,
3 => 23,
4 => 1518,
),
15 =>
array (
0 => 2,
1 => 3,
2 => 13,
3 => 17,
4 => 1326,
),
16 =>
array (
0 => 2,
1 => 3,
2 => 13,
3 => 19,
4 => 1482,
),
17 =>
array (
0 => 2,
1 => 3,
2 => 13,
3 => 23,
4 => 1794,
),
18 =>
array (
0 => 2,
1 => 3,
2 => 17,
3 => 19,
4 => 1938,
),
19 =>
array (
0 => 2,
1 => 3,
2 => 17,
3 => 23,
4 => 2346,
),
20 =>
array (
0 => 2,
1 => 3,
2 => 19,
3 => 23,
4 => 2622,
),
21 =>
array (
0 => 2,
1 => 5,
2 => 7,
3 => 11,
4 => 770,
),
22 =>
array (
0 => 2,
1 => 5,
2 => 7,
3 => 13,
4 => 910,
),
23 =>
array (
0 => 2,
1 => 5,
2 => 7,
3 => 17,
4 => 1190,
),
24 =>
array (
0 => 2,
1 => 5,
2 => 7,
3 => 19,
4 => 1330,
),
25 =>
array (
0 => 2,
1 => 5,
2 => 7,
3 => 23,
4 => 1610,
),
26 =>
array (
0 => 2,
1 => 5,
2 => 11,
3 => 13,
4 => 1430,
),
27 =>
array (
0 => 2,
1 => 5,
2 => 11,
3 => 17,
4 => 1870,
),
28 =>
array (
0 => 2,
1 => 5,
2 => 11,
3 => 19,
4 => 2090,
),
29 =>
array (
0 => 2,
1 => 5,
2 => 11,
3 => 23,
4 => 2530,
),
30 =>
array (
0 => 2,
1 => 5,
2 => 13,
3 => 17,
4 => 2210,
),
31 =>
array (
0 => 2,
1 => 5,
2 => 13,
3 => 19,
4 => 2470,
),
32 =>
array (
0 => 2,
1 => 5,
2 => 13,
3 => 23,
4 => 2990,
),
33 =>
array (
0 => 2,
1 => 5,
2 => 17,
3 => 19,
4 => 3230,
),
34 =>
array (
0 => 2,
1 => 5,
2 => 17,
3 => 23,
4 => 3910,
),
35 =>
array (
0 => 2,
1 => 5,
2 => 19,
3 => 23,
4 => 4370,
),
36 =>
array (
0 => 2,
1 => 7,
2 => 11,
3 => 13,
4 => 2002,
),
37 =>
array (
0 => 2,
1 => 7,
2 => 11,
3 => 17,
4 => 2618,
),
38 =>
array (
0 => 2,
1 => 7,
2 => 11,
3 => 19,
4 => 2926,
),
39 =>
array (
0 => 2,
1 => 7,
2 => 11,
3 => 23,
4 => 3542,
),
40 =>
array (
0 => 2,
1 => 7,
2 => 13,
3 => 17,
4 => 3094,
),
41 =>
array (
0 => 2,
1 => 7,
2 => 13,
3 => 19,
4 => 3458,
),
42 =>
array (
0 => 2,
1 => 7,
2 => 13,
3 => 23,
4 => 4186,
),
43 =>
array (
0 => 2,
1 => 7,
2 => 17,
3 => 19,
4 => 4522,
),
44 =>
array (
0 => 2,
1 => 7,
2 => 17,
3 => 23,
4 => 5474,
),
45 =>
array (
0 => 2,
1 => 7,
2 => 19,
3 => 23,
4 => 6118,
),
46 =>
array (
0 => 2,
1 => 11,
2 => 13,
3 => 17,
4 => 4862,
),
47 =>
array (
0 => 2,
1 => 11,
2 => 13,
3 => 19,
4 => 5434,
),
48 =>
array (
0 => 2,
1 => 11,
2 => 13,
3 => 23,
4 => 6578,
),
49 =>
array (
0 => 2,
1 => 11,
2 => 17,
3 => 19,
4 => 7106,
),
50 =>
array (
0 => 2,
1 => 11,
2 => 17,
3 => 23,
4 => 8602,
),
51 =>
array (
0 => 2,
1 => 11,
2 => 19,
3 => 23,
4 => 9614,
),
52 =>
array (
0 => 2,
1 => 13,
2 => 17,
3 => 19,
4 => 8398,
),
53 =>
array (
0 => 2,
1 => 13,
2 => 17,
3 => 23,
4 => 10166,
),
54 =>
array (
0 => 2,
1 => 13,
2 => 19,
3 => 23,
4 => 11362,
),
55 =>
array (
0 => 2,
1 => 17,
2 => 19,
3 => 23,
4 => 14858,
),
56 =>
array (
0 => 3,
1 => 5,
2 => 7,
3 => 11,
4 => 1155,
),
57 =>
array (
0 => 3,
1 => 5,
2 => 7,
3 => 13,
4 => 1365,
),
58 =>
array (
0 => 3,
1 => 5,
2 => 7,
3 => 17,
4 => 1785,
),
59 =>
array (
0 => 3,
1 => 5,
2 => 7,
3 => 19,
4 => 1995,
),
60 =>
array (
0 => 3,
1 => 5,
2 => 7,
3 => 23,
4 => 2415,
),
61 =>
array (
0 => 3,
1 => 5,
2 => 11,
3 => 13,
4 => 2145,
),
62 =>
array (
0 => 3,
1 => 5,
2 => 11,
3 => 17,
4 => 2805,
),
63 =>
array (
0 => 3,
1 => 5,
2 => 11,
3 => 19,
4 => 3135,
),
64 =>
array (
0 => 3,
1 => 5,
2 => 11,
3 => 23,
4 => 3795,
),
65 =>
array (
0 => 3,
1 => 5,
2 => 13,
3 => 17,
4 => 3315,
),
66 =>
array (
0 => 3,
1 => 5,
2 => 13,
3 => 19,
4 => 3705,
),
67 =>
array (
0 => 3,
1 => 5,
2 => 13,
3 => 23,
4 => 4485,
),
68 =>
array (
0 => 3,
1 => 5,
2 => 17,
3 => 19,
4 => 4845,
),
69 =>
array (
0 => 3,
1 => 5,
2 => 17,
3 => 23,
4 => 5865,
),
70 =>
array (
0 => 3,
1 => 5,
2 => 19,
3 => 23,
4 => 6555,
),
71 =>
array (
0 => 3,
1 => 7,
2 => 11,
3 => 13,
4 => 3003,
),
72 =>
array (
0 => 3,
1 => 7,
2 => 11,
3 => 17,
4 => 3927,
),
73 =>
array (
0 => 3,
1 => 7,
2 => 11,
3 => 19,
4 => 4389,
),
74 =>
array (
0 => 3,
1 => 7,
2 => 11,
3 => 23,
4 => 5313,
),
75 =>
array (
0 => 3,
1 => 7,
2 => 13,
3 => 17,
4 => 4641,
),
76 =>
array (
0 => 3,
1 => 7,
2 => 13,
3 => 19,
4 => 5187,
),
77 =>
array (
0 => 3,
1 => 7,
2 => 13,
3 => 23,
4 => 6279,
),
78 =>
array (
0 => 3,
1 => 7,
2 => 17,
3 => 19,
4 => 6783,
),
79 =>
array (
0 => 3,
1 => 7,
2 => 17,
3 => 23,
4 => 8211,
),
80 =>
array (
0 => 3,
1 => 7,
2 => 19,
3 => 23,
4 => 9177,
),
81 =>
array (
0 => 3,
1 => 11,
2 => 13,
3 => 17,
4 => 7293,
),
82 =>
array (
0 => 3,
1 => 11,
2 => 13,
3 => 19,
4 => 8151,
),
83 =>
array (
0 => 3,
1 => 11,
2 => 13,
3 => 23,
4 => 9867,
),
84 =>
array (
0 => 3,
1 => 11,
2 => 17,
3 => 19,
4 => 10659,
),
85 =>
array (
0 => 3,
1 => 11,
2 => 17,
3 => 23,
4 => 12903,
),
86 =>
array (
0 => 3,
1 => 11,
2 => 19,
3 => 23,
4 => 14421,
),
87 =>
array (
0 => 3,
1 => 13,
2 => 17,
3 => 19,
4 => 12597,
),
88 =>
array (
0 => 3,
1 => 13,
2 => 17,
3 => 23,
4 => 15249,
),
89 =>
array (
0 => 3,
1 => 13,
2 => 19,
3 => 23,
4 => 17043,
),
90 =>
array (
0 => 3,
1 => 17,
2 => 19,
3 => 23,
4 => 22287,
),
91 =>
array (
0 => 5,
1 => 7,
2 => 11,
3 => 13,
4 => 5005,
),
92 =>
array (
0 => 5,
1 => 7,
2 => 11,
3 => 17,
4 => 6545,
),
93 =>
array (
0 => 5,
1 => 7,
2 => 11,
3 => 19,
4 => 7315,
),
94 =>
array (
0 => 5,
1 => 7,
2 => 11,
3 => 23,
4 => 8855,
),
95 =>
array (
0 => 5,
1 => 7,
2 => 13,
3 => 17,
4 => 7735,
),
96 =>
array (
0 => 5,
1 => 7,
2 => 13,
3 => 19,
4 => 8645,
),
97 =>
array (
0 => 5,
1 => 7,
2 => 13,
3 => 23,
4 => 10465,
),
98 =>
array (
0 => 5,
1 => 7,
2 => 17,
3 => 19,
4 => 11305,
),
99 =>
array (
0 => 5,
1 => 7,
2 => 17,
3 => 23,
4 => 13685,
),
100 =>
array (
0 => 5,
1 => 7,
2 => 19,
3 => 23,
4 => 15295,
),
101 =>
array (
0 => 5,
1 => 11,
2 => 13,
3 => 17,
4 => 12155,
),
102 =>
array (
0 => 5,
1 => 11,
2 => 13,
3 => 19,
4 => 13585,
),
103 =>
array (
0 => 5,
1 => 11,
2 => 13,
3 => 23,
4 => 16445,
),
104 =>
array (
0 => 5,
1 => 11,
2 => 17,
3 => 19,
4 => 17765,
),
105 =>
array (
0 => 5,
1 => 11,
2 => 17,
3 => 23,
4 => 21505,
),
106 =>
array (
0 => 5,
1 => 11,
2 => 19,
3 => 23,
4 => 24035,
),
107 =>
array (
0 => 5,
1 => 13,
2 => 17,
3 => 19,
4 => 20995,
),
108 =>
array (
0 => 5,
1 => 13,
2 => 17,
3 => 23,
4 => 25415,
),
109 =>
array (
0 => 5,
1 => 13,
2 => 19,
3 => 23,
4 => 28405,
),
110 =>
array (
0 => 5,
1 => 17,
2 => 19,
3 => 23,
4 => 37145,
),
111 =>
array (
0 => 7,
1 => 11,
2 => 13,
3 => 17,
4 => 17017,
),
112 =>
array (
0 => 7,
1 => 11,
2 => 13,
3 => 19,
4 => 19019,
),
113 =>
array (
0 => 7,
1 => 11,
2 => 13,
3 => 23,
4 => 23023,
),
114 =>
array (
0 => 7,
1 => 11,
2 => 17,
3 => 19,
4 => 24871,
),
115 =>
array (
0 => 7,
1 => 11,
2 => 17,
3 => 23,
4 => 30107,
),
116 =>
array (
0 => 7,
1 => 11,
2 => 19,
3 => 23,
4 => 33649,
),
117 =>
array (
0 => 7,
1 => 13,
2 => 17,
3 => 19,
4 => 29393,
),
118 =>
array (
0 => 7,
1 => 13,
2 => 17,
3 => 23,
4 => 35581,
),
119 =>
array (
0 => 7,
1 => 13,
2 => 19,
3 => 23,
4 => 39767,
),
120 =>
array (
0 => 7,
1 => 17,
2 => 19,
3 => 23,
4 => 52003,
),
121 =>
array (
0 => 11,
1 => 13,
2 => 17,
3 => 19,
4 => 46189,
),
122 =>
array (
0 => 11,
1 => 13,
2 => 17,
3 => 23,
4 => 55913,
),
123 =>
array (
0 => 11,
1 => 13,
2 => 19,
3 => 23,
4 => 62491,
),
124 =>
array (
0 => 11,
1 => 17,
2 => 19,
3 => 23,
4 => 81719,
),
125 =>
array (
0 => 13,
1 => 17,
2 => 19,
3 => 23,
4 => 96577,
),
)
preferences:
68.65 ms | 426 KiB | 62 Q