我无法弄清楚如何按如下方式获取数据。总数无关紧要;它将遵循0,1,2,3,4,5,6等逻辑顺序中任何数字的相同模式。所以基本上,从0,2,3,4等开始,其中1将被放置在之后的最大数字,其中0可以是我静态设置的变量。我遇到的问题是一直到最大数字然后继续,例如
..., 97, 98, 99, 100, 1, 2, ...
然后按顺序进行,
..., 98, 99, 100, 1, 2, 3, ...
依此类推,直到1,2,3,4,5,6 ......
并将其全部存储到下面的多维数组中。
$set = array(
array('0','0','0','0','0','0','0','0','0','0','0'),
array('0','2','3','4','5','6','7','8','9','10','1'),
array('0','3','4','5','6','7','8','9','10','1','2'),
array('0','4','5','6','7','8','9','10','1','2','3'),
array('0','5','6','7','8','9','10','1','2','3','4'),
array('0','6','7','8','9','10','1','2','3','4','5'),
array('0','7','8','9','10','1','2','3','4','5','6'),
array('0','8','9','10','1','2','3','4','5','6','7'),
array('0','9','10','1','2','3','4','5','6','7','8'),
array('0','10','1','2','3','4','5','6','7','8','9'),
array('0','1','2','3','4','5','6','7','8','9','10'),
);
我做了以上所述,因为我无法弄清楚循环模式;如果我能想到这一点,我不需要手动输入数据,并可以创建一个表格,通过该表格可以选择任何数字,遵循这种模式。
答案 0 :(得分:2)
请注意,除了第一行和第一列之外,每行只是上一次向左移动,并添加了下一个值:
$max = 10;
// First row (full of 0)
$set = array(array_fill(0, $max + 1, 0));
$row = array();
for($i = 1; $i <= $max; $i++)
$row[] = $i;
$row[] = 1; // $row = [2,3,4,...,$max,1]
for($i = 0; $i < $max; $i++){
$set[] = array_merge(array(0), $row);
$row = array_map(function($x) use ($max){ // Requires PHP 5.3
$result = ($x + 1) % $max;
return 0 === $result ? $max : $result;
}, $row);
}
如果你需要的话,使这个商店字符串而不是整数当然是相当简单的。
答案 1 :(得分:1)
$array = array();
$max = 10;
for ($i = 0; $i < $max; $i++)
{
$num = $i + 2;
$array[$i][] = 0;
for ($j = 0; $j < $max; $j++)
{
if ($num == $max + 1)
$num = 1;
$array[$i][] = $num;
$num++;
}
}
var_dump($array);
答案 2 :(得分:0)
请试试这个..这是Java版本。希望这符合您的要求。您可能需要将ZERO设置为数组的第一行。
int max = 12;
int[][] array = new int[max + 1][max + 1];
int counter = 0;
for(int i = 0; i < max + 1 ; i ++)
{
array[i][0] = 0;
counter = i+1;
for(int j = 1 ; j < max + 1 ; j++)
{
int value ;
if(counter <= max)
value = max - ( max - counter );
else
value = counter - max;
counter++;
array[i][j] = value;
System.out.print(" " + array[i][j]);
}
System.out.println("");
}
1 2 3 4 5 6 7 8 9 10 11 12
2 3 4 5 6 7 8 9 10 11 12 1
3 4 5 6 7 8 9 10 11 12 1 2
4 5 6 7 8 9 10 11 12 1 2 3
5 6 7 8 9 10 11 12 1 2 3 4
6 7 8 9 10 11 12 1 2 3 4 5
7 8 9 10 11 12 1 2 3 4 5 6
8 9 10 11 12 1 2 3 4 5 6 7
9 10 11 12 1 2 3 4 5 6 7 8
10 11 12 1 2 3 4 5 6 7 8 9
11 12 1 2 3 4 5 6 7 8 9 10
12 1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11 12