欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php版螺旋矩阵(由里到外)

程序员文章站 2022-05-19 21:29:06
...
<?php
function matrix($n){
    $y = $x = ($n - 1) / 2;
    $num = 2;
    $total = pow($n, 2);
    $arr = array_fill(0, $n, array_fill(0, $n, 1));
    $i = 0;
    $limit = 1;

    while ($num <= $total) {
         for ($j = 0; $num <= $total && $j < $limit; ++$j) { 
             switch ($i) {
                 case 0 :
                     ++$y;
                     break;
                 case 1 :
                     ++$x;
                     break;
                 case 2 :
                     --$y;
                     break;
                 case 3 :
                     --$x;
                     break;
             }
             $arr[$x][$y] = $num++;
         }
         if ($i % 2 == 1) {
             ++$limit;
         }
         $i = ($i + 1) % 4;
     } 
     return $arr;
}

$arr = matrix(6);
print_r($arr);