PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP高级编程 >> 高级应用 >> 

PHP打印环状数字圈

PHP打印环状数字圈

来源:互联网  作者:  发布时间:2010-12-28
如题: $i=[number]; 打印如下的图形: 1 2 3 4 12 13 14 5 11 16

 
如题:
$i=[number];
打印如下的图形:

1  2  3  4
12 13 14 5
11 16 15 6
10 9  8  7
 

/**  
 * 二维数组排序  
 * @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;$i<$grids_edge;$i++){   
        $right=$x+$grids_edge;   
        $basevalue=$start_value+$i;   
        $container[$x][$x+$i]=$base_value;   
        $container[$x+$i][$right]=$grids_edge+$base_value;   


        $container[$right][$right-$i]=$grids_edge*2+$base_value;   
        $container[$right-$i][$x]=$grids_edge*3+$base_value;   
    }   
}   
   
   
$container=array();   
$data=array(   
    1 =>array(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='<table border=1>';   
foreach($container as $key=>$edge){   
    $table.='<tr>';   
    foreach($edge as $val){   
        $table.='<td>'.$val.'</td>';   
    }   
    $table.='</tr>';   
}   
$table.='</table>';   
echo $table;  

 


延伸阅读:
如何PHP的图形函数中显示汉字
不用GD库生成当前时间的PNG格式图象的程序
PHP的GD库函数大全
Tags: php   打印   环状   gd  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号