<?php
/*
* 蛇形矩阵一
*/
$n = 5;
//填充数组,array_fill第一个参数是起始下标,第二个是总个数,第三个是元素
$arr = array_fill(0, $n, array_fill(0, $n, 0));
$x = 0;
$y = $n – 1;
$p = $arr[$x][$y] = 1;//开始位置
//向下,向左,向上,向右(注意范围)
while($p < $n * $n) {
while($x + 1 < $n && $arr[$x+1][$y] == 0) {
++$x;
$arr[$x][$y] = ++$p;
}
while($y – 1 >= 0 && $arr[$x][$y-1] == 0) {
–$y;
$arr[$x][$y] = ++$p;
}
while($x – 1 >= 0 && $arr[$x-1][$y] == 0) {
–$x;
$arr[$x][$y] = ++$p;
}
while($y + 1 < $n && $arr[$x][$y+1] == 0) {
++$y;
$arr[$x][$y] = ++$p;
}
}
for ($i = 0;$i < $n;$i++) {
for($j = 0; $j < $n;$j++) {
echo $arr[$i][$j].” “;
}
echo “<br>”;
}
?>
输出结构是:
13 14 15 16 1 12 23 24 17 2 11 22 25 18 3 10 21 20 19 4 9 8 7 6 5
今天看书看到的,就写出来。今天又加强学习了array_fill数组填充函数