Я ищу способ сделать это:
У меня есть массив, такой как:
$numbers = [1, 2, 3, 4, 5];
Но мне нужно, чтобы функция взяла эти числа и вернула
суб-массивы как это:
[1,2,3,4];
[1,2,3,5];
[1,2,4,5];
[1,3,4,5];
[2,3,4,5];
[1,2,3];
[1,2,4];
[1,3,5];
[1,2,5];
[1,2];
[2,3];
[1];
[2];
и так далее…
Что-то вроде этого,
Я не знаю, как заставить алгоритм сделать это.
Благодарю вас.
Я думаю, что, возможно, вы ошиблись со своим выводом. Эти значения не имеют никакого смысла для меня, если они не будут 134
234 а не:
[1,3,5];
[1,2,5];
Я знаю, что не должен писать код для других людей, но на всякий случай, если кто-нибудь увидит этот вопрос и удивится ответу, как я.
$numbers = [1, 2, 3, 4, 5];
for($q = 0; $q<sizeof($numbers)-1; $q++)
{
for($i = sizeof($numbers)-1; $i>=0; $i--){
$temp = $numbers[$i];
for($w = 0; $w<sizeof($numbers); $w++)
{
if ($numbers[$w]!=$temp)
echo $numbers[$w];
}
echo "<br>";
}
array_pop($numbers);
}
Используйте вложенную циклическую структуру. Создайте temp для хранения пропущенного элемента массива, выполните итерацию по массиву, печатая значения, которые не являются временными (или отправляя их в подмассивы, если вы действительно хотите), затем уменьшите временную переменную. Затем вставьте последний элемент массива, пока не выполните итерацию назад по всему массиву.
1234
1235
1245
1345
2345
123
124
134
234
12
13
23
1
2
Других решений пока нет …