<?php
$matrix[0][0] = 2;
$matrix[0][1] = 3;
$matrix[0][2] = 4;
$matrix[0][3] = 8;
$matrix[0][4] = 8;
$matrix[1][0] = 5;
$matrix[1][1] = 7;
$matrix[1][2] = 9;
$matrix[1][3] = 12;
$matrix[1][4] = 245;
$matrix[2][0] = 1;
$matrix[2][1] = 0;
$matrix[2][2] = 6;
$matrix[2][3] = 10;
$matrix[2][4] = 10;
function echoMatrix($matrix){
$str = '';
$str.= '<table border=\'1\'>';
for ($i=0; $i < count($matrix); $i++) {
$str.= '<tr>';
for ($j=0; $j < count($matrix[0]); $j++) {
$str.= '<td>';
$str.= $matrix[$i][$j];
$str.= '</td>';
}
$str.= '</tr>';
}
$str.= '</table>';
return $str;
}
function printMatrix($matrix)
{
//求高度
$row = count($matrix);
//求宽度
$col = count($matrix[0]);
//为0则参数不正确
if($row == 0 || $col == 0){
return $matrix;
}
$result = array();//定义一个空数组
$left = 0;//定义左边开始的位置 $matrix[0][0] 为第一个
$right = $col-1;//第一行结束的下标
$top = 0;//从第一行开始
$bottom = $row-1;//最后一行的下标
//当指针位置不为反过来的时候
while($left <= $right && $top <= $bottom){
//$i类似一个指针,从左到右移动
for($i = $left;$i <= $right;$i++){
//把第一行的数据放入数组
array_push($result, $matrix[$top][$i]);
}
//把最后一纵的数据放入数组 $right
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){
//指针向上走一步,到上面一行。条件 小于顶部 $i为高度
for($i = $bottom-1;$i>$top;$i--){
array_push($result, $matrix[$i][$left]);
}
}
$left++;//边界向右偏移一位(第一列的数都已经输出完毕)
$right--;//边界向左偏移一位(最后一列的数都已经输出完毕)
$top++;//高度降低一行(第一行的数都已经输出完毕)
$bottom--;//高度降低一行(最后一行的数都已经输出完毕
//当指针位置不为反过来的时候,再次执行
}
//返回值
return $result;
}
//输出矩阵
echo echoMatrix($matrix);
echo '以上矩阵可以顺时针输出为:';
echo '<br />';
echo implode(printMatrix($matrix),',');
?>
矩阵顺时针输出
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...