<?php
function generate(int $elementsCount, int $maxValue, array $current = []): \Generator
{
for ($value = 1; $value <= $maxValue; $value++) {
yield [...$current, $value];
}
if ($elementsCount > 1) {
for ($value = 1; $value <= $maxValue; $value++) {
yield from generate($elementsCount - 1, $maxValue, [...$current, $value]);
}
}
}
print_r(iterator_to_array(generate(3, 3), false));
- Output for 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- Array
(
[0] => Array
(
[0] => 1
)
[1] => Array
(
[0] => 2
)
[2] => Array
(
[0] => 3
)
[3] => Array
(
[0] => 1
[1] => 1
)
[4] => Array
(
[0] => 1
[1] => 2
)
[5] => Array
(
[0] => 1
[1] => 3
)
[6] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
[7] => Array
(
[0] => 1
[1] => 1
[2] => 2
)
[8] => Array
(
[0] => 1
[1] => 1
[2] => 3
)
[9] => Array
(
[0] => 1
[1] => 2
[2] => 1
)
[10] => Array
(
[0] => 1
[1] => 2
[2] => 2
)
[11] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[12] => Array
(
[0] => 1
[1] => 3
[2] => 1
)
[13] => Array
(
[0] => 1
[1] => 3
[2] => 2
)
[14] => Array
(
[0] => 1
[1] => 3
[2] => 3
)
[15] => Array
(
[0] => 2
[1] => 1
)
[16] => Array
(
[0] => 2
[1] => 2
)
[17] => Array
(
[0] => 2
[1] => 3
)
[18] => Array
(
[0] => 2
[1] => 1
[2] => 1
)
[19] => Array
(
[0] => 2
[1] => 1
[2] => 2
)
[20] => Array
(
[0] => 2
[1] => 1
[2] => 3
)
[21] => Array
(
[0] => 2
[1] => 2
[2] => 1
)
[22] => Array
(
[0] => 2
[1] => 2
[2] => 2
)
[23] => Array
(
[0] => 2
[1] => 2
[2] => 3
)
[24] => Array
(
[0] => 2
[1] => 3
[2] => 1
)
[25] => Array
(
[0] => 2
[1] => 3
[2] => 2
)
[26] => Array
(
[0] => 2
[1] => 3
[2] => 3
)
[27] => Array
(
[0] => 3
[1] => 1
)
[28] => Array
(
[0] => 3
[1] => 2
)
[29] => Array
(
[0] => 3
[1] => 3
)
[30] => Array
(
[0] => 3
[1] => 1
[2] => 1
)
[31] => Array
(
[0] => 3
[1] => 1
[2] => 2
)
[32] => Array
(
[0] => 3
[1] => 1
[2] => 3
)
[33] => Array
(
[0] => 3
[1] => 2
[2] => 1
)
[34] => Array
(
[0] => 3
[1] => 2
[2] => 2
)
[35] => Array
(
[0] => 3
[1] => 2
[2] => 3
)
[36] => Array
(
[0] => 3
[1] => 3
[2] => 1
)
[37] => Array
(
[0] => 3
[1] => 3
[2] => 2
)
[38] => Array
(
[0] => 3
[1] => 3
[2] => 3
)
)
- Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33
- Parse error: syntax error, unexpected '...' (T_ELLIPSIS), expecting ']' in /in/E5NRK on line 6
Process exited with code 255.
preferences:
145.63 ms | 411 KiB | 5 Q