如果我选择数字1到2的范围,输出将以矩阵格式2X2,如, 第1行=> 1和2 第2行=> 2和1 (要么) 第1行=> 2和1 第二行=> 1和2
如果我选择数字1到3的范围,输出将以矩阵格式3X3,如, 1 2 3, 2 3 1, 3 1 2 (要么) 2 1 3, 3 2 1, 1 3 2 无论输出是什么,但每个单元格值不应再次出现在同一行和列中。
如果我选择数字1到4的范围,输出将以矩阵4X4格式显示为
4 2 1 3, 1 4 3 2, 2 3 2 4, 3 1 4 1
我需要改变范围。我想用php清除这个概念。 PLS。任何人帮助.....
答案 0 :(得分:1)
因为一个答案总是已知的; [a, b, c] => [ [ a, b, c], [ b, c, a ], [ c, a, b ] ]
,基本上是重复的array_shift。
$startValue = 1;
$endValue = 3;
$arr = [];
for($idx = $startValue; $idx < $endValue + 1; ++$idx)
array_push($arr, $idx);
$result = [ $arr ];
$row = $arr;
while(count($result) < count($arr)) {
array_push($row, array_shift($row));
array_push($result, $row);
}
print_r($result);
结果:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 2
[1] => 3
[2] => 1
)
[2] => Array
(
[0] => 3
[1] => 1
[2] => 2
)
)