当前位置 : 主页 > 网络编程 > PHP >

逆时针打印二维数组

来源:互联网 收集:自由互联 发布时间:2021-06-28
逆时针打印二维数组 $a = array(array(0,1,2,3,4,5,6,7),array(27,28,29,30,31,32,33,8),array(26,47,48,49,50,51,34,9),array(25,46,59,60,61,52,35,10),array(24,45,58,63,62,53,36,11),array(23,44,57,56,55,54,37,12),array(22,43,42,41,40,39,3
逆时针打印二维数组
$a = array(array(0,1,2,3,4,5,6,7),array(27,28,29,30,31,32,33,8),array(26,47,48,49,50,51,34,9),array(25,46,59,60,61,52,35,10),array(24,45,58,63,62,53,36,11),array(23,44,57,56,55,54,37,12),array(22,43,42,41,40,39,38,13),array(21,20,19,18,17,16,15,14));
    
	ReluoTwoArr($a);
	
	function ReluoTwoArr($a){
        
        $len = count($a);   //行列式的行数
        $col = count($a[0]);//行列式的列数
        
        $mid = $len<$col?$len:$col;//取行和列的最小值
        
        $hang=0;//用于记录已打印的行数
        $lie=0;//用于记录已打印的列数
                
        $flag1=0;//用于记录行标或列标
        $flag2=0;//用于记录行标或列标
        
        $i=0;
        $sum=0;
        for($start=0;$start<=$mid/2;$start++){                    
            //1.上到下打印列
            if($lie<$col){
                for($i=$start;$i<$len-$start;$i++){
                    echo $a[$i][$start]." ";    
                    $sum++;
                }    
                $flag1=$i-1;
                $lie++;//打印的行数加1            
            }    
            
            //2.从左到右打印行
            if($hang<$len){
                for($i=$start+1;$i<$col-$start;$i++){
                    echo $a[$flag1][$i]." ";
                    $sum++;                
                }
                $flag2=$i-1;
                $hang++;    //打印的列数加1        

            }
            
            //3.从下到上打印列
            if($lie<$col){
                for($i=$flag1-1;$i>=$start;$i--){
                    echo $a[$i][$flag2]." ";
                    $sum++;
                }
                $flag1=$i;    
                $lie++;//打印的行数加1                
            }            
            
            //4.从右到左打印行
            if($hang<$len){
                for($i=$flag2-1;$i>$start;$i--){
                    echo $a[$start][$i]." ";
                    $sum++;
                }
                $hang++;    //打印的列数加1    
            }
        echo "一共打印了 "+$sum+" 个元素";
        }
    }
网友评论