この記事では、PHP で行列と螺旋行列の時計回りの印刷を実装する方法を説明します。
この記事の例では、PHP で行列を時計回りに出力する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです。
質問
行列を入力し、各数値を外側から内側に向かって時計回りに出力します。たとえば、次の行列を入力したとします:
1234
5678
9101112
13141516
は、1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10 の数字を順番に出力します。
解決策
は、印刷がぐるぐる回って、サイクルを制御するだけです。
単一行、単一列の状況に注意してください。
実装コード
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 の中国語 Web サイトを参照してください。
関連する推奨事項:
PHP 開発を使用して WeChat 返金機能を実装する方法を説明します
PHP はバイナリ ツリーをジグザグ順序で出力するメソッドを実装します
以上が右回り印刷マトリクスとスパイラルマトリクスを実現するPHP手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。