欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP打印环状数圈

程序员文章站 2022-05-14 23:11:38
...
跳至
    /** 
     * 二维数组排序 
     * @param   array $array 
     */  
    function sort_recursive(&$array){  
        foreach($array as $key=>$edge){  
            ksort($edge,true);  
            $array[$key]=$edge;  
        }  
        ksort($array,true);  
    }  
      
    /** 
     * 生成一圈环状数字 
     * @param   array $cotainer    二维数组,包含生成的圈 
     * @param   int $start_value    该圈的起始值 
     * @param   int $x    该圈的偏移值 
     * @param   int $grids_edge    每条边的数字个数 
     */  
    function generate(&$container,$start_value,$x,$grids_edge){  
        $rec_times=ceil($grids_edge/2);  
        $center=$grids_edge&1?false:$start_value+4*$rec_times*($rec_times+1);  
        if($center){  
            $index=$x+ceil($grids_edge/2);  
            $container[$index][$index]=$center;  
        }  
        for($i=0;$iarray(1,6),  
        25=>array(2,4),  
        41=>array(3,2),  
    );  
    /* 
    $data=array( 
        1 =>array(1,2), 
    ); 
    $data=array( 
        1 =>array(1,5), 
        21=>array(2,3), 
        33=>array(3,1), 
    ); 
    $data=array( 
        1 =>array(1,3), 
        13=>array(2,1), 
    ); 
    */  
    foreach($data as $key=>$val){  
        generate($container,$key,$val[0],$val[1]);  
    }  
    sort_recursive($container);  
    $table='';  
    foreach($container as $key=>$edge){  
        $table.='';  
        foreach($edge as $val){  
            $table.=''.$val.'';  
        }  
        $table.='';  
    }  
    $table.='';  
    echo $table;

相关标签: PHP打印环状数圈