2차원 배열을 아래 그림처럼 90도씩 회전시켜 그 결과를 출력하는 예제입니다.

  1   2   3   4       13   9  5   1       16  15  14  13      4   8  12  16
  5   6   7   8  =>   14  10  6   2  =>   12  11  10   9  =>  3   7  11  15
  9  10  11  12       15  11  7   3        8   7   6   5      2   6  10  14
 13  14  15  16       16  12  8   4        4   3   2   1      1   5   9  13


<php
  $arr = array(
    array(1, 2, 3, 4),
    array(5, 6, 7, 8),
    array(9, 10, 11, 12),
    array(13, 14, 15, 16)
  );

  for($i = 0; $i < count($arr); $i++)
  {
    for($j = 0; $j < count($arr); $j++)
    {
      echo $arr[$i][$j] . "\t";
    }
    echo "<br />\n";
  }
  echo "<br />\n";
 /*
 결과:
  1   2   3   4
  5   6   7   8
  9  10  11  12
 13  14  15  16
 */

  for($i = 0; $i < count($arr); $i++)
  {
    for($j = count($arr); $j > -1; $j--)
    {
      echo $arr[$j][$i] . "\t";
    }
    echo "<br />\n";
  }
  echo "<br />\n";
/*
 결과:
 13    9    5   1
 14   10    6   2
 15   11    7   3
 16   12    8   4
 */

  for($i = count($arr); $i > -1; $i--)
  {
    for($j = count($arr); $j > -1; $j--)
    {
      echo $arr[$i][$j] . "\t";
    }
    echo "<br />\n";
  }
  echo "<br />\n";
/*
 결과:
 16   15   14   13
 12   11   10    9
  8    7    6    5
  4    3    2    1
 */

  for($i = count($arr); $i > -1; $i--)
  {
    for($j = 0; $j < count($arr); $j++)
    {
      echo $arr[$j][$i] . "\t";
    }
    echo "<br />\n";
  } 
/*
 결과:
 4   8   12   16
 3   7   11   15
 2   6   10   14
 1   5    9   13
 */
 ?>

0 댓글