先上代码
通过循环打印回路来输出矩阵。
例如打印6x6的矩阵就需要循环打印3个轮回即可。
<?php
function she($num){
$arr=array();
$n=$num/2;
$m=4*$num-4;
$count=1;
$x=$y=0;
for($i=0;$i<$n;$i++){
for($j=0;$j<$m;$j++){//还可以改进,减少循环次数,里面有很多无用循环次数,且外层循环一层后,无用循环会大大增加。
if($y<$num-$i&&$x==$i){
$arr[$x][$y]=$count;
// echo $arr[$x][$y];
$count++;
$y++;
}
if($y==$num-$i-1&&$x<$num-$i){
$arr[$x][$y]=$count;
$count++;
$x++;
}
if($x==$num-1-$i&&$y>$i){
$arr[$x][$y]=$count;
$count++;
$y--;
}
if($x>$i+1&&$y==$i){
$arr[$x][$y]=$count;
$count++;
$x--;
}
}
}
for($i=0;$i<$num;$i++){
for($j=0;$j<$num;$j++){
echo $arr[$i][$j]." ";
}
echo "<br />";
}
}
she(5);