Я написал нижеприведенную функцию, которая берет массив и выводит все его комбинации.Создайте все комбинации массива с заданным количеством слотов в PHP
$option = array("a","b","c");
function combinations($array, $number) {
if ($number == 1) {
foreach ($array as $k => $v1) {
echo $v1 . "<br>";
}
} elseif ($number == 2) {
foreach ($array as $k => $v1) {
foreach ($array as $key => $v2) {
echo $v1 . " - " . $v2 . "<br>";
}
}
} elseif ($number == 3) {
foreach ($array as $k => $v1) {
foreach ($array as $key => $v2) {
foreach ($array as $key => $v3) {
echo $v1 . " - " . $v2 . " - " . $v3 . "<br>";
}
}
}
}
}
combinations($option, 2);
выход:
a - a
a - b
a - c
b - a
b - b
b - c
c - a
c - b
c - c
Он принимает число в качестве аргумента и возвращает либо 1, 2 или 3 слота для комбинации. Однако я не знаю заранее, сколько слотов будет для этой комбинации. В большинстве случаев это может быть от 1 до 3, но я надеялся, что есть способ переписать это, чтобы он мог справиться с любым количеством слотов.
Я новичок в PHP, поэтому я уверен, что есть что-то простое, что мне не хватает. Я был бы очень признателен, если бы кто-нибудь мог указать мне в правильном направлении.
Update:
Я не уверен, как это дубликат php string permutation. Если я правильно понимаю их вопрос, они хотят сделать комбинацию из 4 слотов. Я мог бы выполнить это с другим elseif-блоком в функции. Я ищу способ сделать эту работу любым количеством слотов. Приносим извинения, если я неправильно понял.
Вы сэр волшебник! Спасибо огромное! – ianw