ホームページ >バックエンド開発 >PHPチュートリアル >PHPで右回りの印刷マトリックス(スパイラルマトリックス)を実装する方法の例

PHPで右回りの印刷マトリックス(スパイラルマトリックス)を実装する方法の例

jacklove
jackloveオリジナル
2018-07-02 17:57:441985ブラウズ

この記事では、PHP で右回りの印刷マトリックス (スパイラル マトリックス) を実現する方法を主に紹介し、配列トラバーサルと操作シミュレーション印刷に基づいてスパイラル マトリックス関数を実現するための PHP の関連操作スキルについて説明します。以下

#この記事の例では、PHP で行列を時計回りに出力する方法について説明します。皆さんに共有して参考にしてください。詳細は次のとおりです。

#質問行列を入力し、外側から時計回りに出力します。たとえば、次の行列を入力すると、各数値が出力されます:


##12 3461014 は数値 1、2、3、4、8、12、16、15、14 を出力します。 ,13, 9,5,6,7,11,10.
##5
7 8 9
11 12 13
15 16

解決策は、次のとおり円で印刷することです。ループはうまく制御されます。

単一行、単一列の状況に注意してください。

実装コード


<?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 が 1 行のコードを使用して次のことを行う方法の例ディレクトリ内のすべてのファイルを削除します


PHP が文字ストリーム内の最初の非反復文字を取得する方法の説明


#

以上がPHPで右回りの印刷マトリックス(スパイラルマトリックス)を実装する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。