
<?php
$arr = test3(4,4);
for($i=0;$i<=3;$i++){
for($j=0;$j<=3;$j++){
echo $arr[$i][$j].PHP_EOL;
}
echo "<br/>";
}
function test3($width=4,$length=4){
$num = 1;
$new = [];
//一次循环是一圈
for($i =0;$i<$length-$i;$i++){
$j=$i;
if($j<$width-$i) {
//一圈的上边
for (;$j<$width - $i; $j++) {
$new[$i][$j] = $num++;
}
//一圈的右边
for ($k = $i + 1; $k < $length - $i; $k++) {
$new[$k][$width-1-$i] = $num++;
}
$f = $length - 1 - $i; //下边所在的行数
if ($f != $i) {
//一圈的下边
for ($m = $width - 1 - $i - 1; $m >= $i; $m--) {
$new[$f][$m] = $num++;
}
//一圈的左边
for ($n = $f - 1; $n > $i; $n--) {
$new[$n][$i] = $num++;
}
}
}
}
return $new;
}
注:不是我写的!是别人写的!
该博客展示了如何使用PHP实现一个二维数组的矩阵螺旋填充算法。代码中定义了一个`test3`函数,它接受宽度和长度参数,然后生成一个按照特定顺序填充的矩阵。填充规则是从上到下,从左到右进行一圈一圈地填充。博客内容主要涉及PHP编程和算法设计。
1377





