> 백엔드 개발 > PHP 튜토리얼 > PHP에서 시계 방향 인쇄 행렬(나선형 행렬)을 구현하는 방법의 예

PHP에서 시계 방향 인쇄 행렬(나선형 행렬)을 구현하는 방법의 예

jacklove
풀어 주다: 2023-04-02 08:24:02
원래의
1981명이 탐색했습니다.

이 글은 주로 PHP에서 시계 방향 인쇄 행렬(나선형 행렬)을 구현하는 방법을 소개하며, 나선형 행렬 기능을 구현하기 위한 배열 순회 및 연산 시뮬레이션 인쇄를 기반으로 하는 PHP의 관련 작업 기술을 포함합니다.

이 문서에서는 PHP에서 시계 방향으로 행렬을 인쇄하는 방법에 대한 예제를 설명합니다. 참고를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

Question

행렬을 입력하고 바깥쪽에서 안쪽으로 시계 방향으로 각 숫자를 인쇄합니다. 예를 들어 다음 행렬을 입력하면. :


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

은 숫자 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11을 인쇄합니다. ,10.

해결책

은 주기만 잘 조절하면 원을 그리며 인쇄하는 것입니다.
단일 행과 단일 열의 상황에 주의하세요.

구현 코드

<?php
function printMatrix($matrix)
{
 $row = count($matrix);
 $col = count($matrix[0]);
 if($row == 0 || $col == 0)
  return $matrix;
 $result = array();
 $left = 0;$right = $col-1; $top = 0;$bottom = $row-1;
 while($left<=$right && $top<= $bottom){
  for($i =$left;$i<=$right;++$i){
   array_push($result, $matrix[$top][$i]);
  }
  for($i =$top+1;$i<=$bottom;++$i)
   array_push($result, $matrix[$i][$right]);
  if($top!=$bottom){
   for($i = $right-1;$i>=$left;--$i)
    array_push($result, $matrix[$bottom][$i]);
  }
  if($left!=$right){
   for($i = $bottom-1;$i>$top;--$i)
    array_push($result, $matrix[$i][$left]);
  }
  $left++;$right--;$top++;$bottom--;
 }
 return $result;
}
로그인 후 복사

관심을 가질 만한 기사:

PHP가 이진 트리가 대칭인지 판단하는 방법을 구현하는 방법에 대한 설명

PHP는 하나를 사용합니다 디렉터리를 삭제하는 코드 줄 모든 파일 메서드 예제 설명

문자 스트림에서 반복되지 않는 첫 번째 문자를 가져오는 PHP 메서드


위 내용은 PHP에서 시계 방향 인쇄 행렬(나선형 행렬)을 구현하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿