У меня есть функция, которая случайным образом берет 4 уникальных числа из массива и умножает их. Проблема со сценарием ниже заключается в том, что он распечатывает только продукты. Я хотел бы, чтобы каждый набор из 4 чисел и его произведение находились в отдельном массиве, а все массивы - в основном массиве, образуя двумерный массив. Мой текущий сценарий:
Код: Выделить всё
//Pruning outcome from controlled lists of Prime Numbers
$primes = array(2, 3, 5, 7, 11, 13, 17, 19, 23);
function getAllCombinations($arr, $n, $selected = array(), $startIndex = 0) {
if ($n == 0) {
$product = 1;
foreach ($selected as $prime) {
$pr[] = $prime;
$product *= $prime;
$pr[] = $prime;
}
echo "Product: $product\n";
return;
}
for ($i = $startIndex; $i < count($arr); $i++) {
$selected[] = $arr[$i];
getAllCombinations($arr, $n - 1, $selected, $i + 1);
array_pop($selected); // Backtrack and remove the element for next iteration
}
}
getAllCombinations($primes, 4);
Код: Выделить всё
Product: 210 Product: 330 Product: 390 Product: 510,
Код: Выделить всё
[0][0] =>2 [0][1] =>3 [0][2]=>5 [0][3]=>7 and the product would be in [0][4] =>210
[1][0] =>2 [1][1] =>3 [1][2]=>5 [1][3]=>11 and the product would be in [1][4] =>330
...
Источник: https://stackoverflow.com/questions/781 ... ad-of-echo
Мобильная версия