日期:2014-05-17 浏览次数:20665 次
<html>
<style type="text/css">
.chart {
font-family: Tahoma;
font-size: 12px;
border: 1px solid #ccc;
width:auto;
float: left;
margin: 0;
padding: .4em .1em;
height:auto;
}
.chart ul {
margin:0px;
height:auto;
text-align: center;
display:block;
background-repeat: no-repeat;
background-position: center bottom;
background-attachment: fixed;
}
.chart li {
list-style: none;
float: left;
width: 35px;
height:200px;
text-align: center;
display:block;
background-repeat: no-repeat;
background-position: center bottom;
background-attachment: fixed;
}
.b {
display: block;
width:15px;
background-color:#000;
margin-right: auto;
margin-left: auto;
}
.a {
height:12px;
width:35px;
background-color:#fff;
padding: 0px;
}
</style>
<?php
$beg_time = microtime(true);
$beg_time *= 1000 * 1000;
create_chart2();
function create_chart2() {//x一维数组直接输出图表
//思路先得到一个一维数组,然后统计值的个数,最后排序输出
//echo '<table>';
$returnarray2=array();
$db1=new mysqli('localhost','admin','admin','ssq') ;
$sql_query='select l1,l2,l3,l4,l5,l6 from hmk_temp_1 as bb limit 0,1000';
$res1=$db1->query($sql_query);
while($row1=mysqli_fetch_array($res1,MYSQLI_NUM)) {
$returnarray2=array_merge($returnarray2,$row1);
}
$array_values=array_count_values($returnarray2);
ksort($array_values);
//print_r($array_values);
$rates=round(200/max($array_values),2);
echo '$rates='.$rates;
echo '<div class="chart"> <p>一区</p> <ul>';
foreach($array_values as $key=>$value){
echo '<li><span class="a" style="margin-top:'.(210-$value*$rates).'px;">' .$value.'</span><span class="b" style="height:'.($value*$rates).'px;">'.'</span><span class="a">'.$key.'</span></li>' ;
}
echo '</ul>
</div>
<p style="clear: both"></p>' ;
//echo '</table>';
}
$end_time = microtime(true);
$end_time *= 1000 * 1000;
echo "Total time used : " . ($end_time - $beg_time) . "ms" . PHP_EOL;
?>
</html>
$s_time = microtime(true);
$d = range(1, 33);
$r = array();
for($i=0; $i<1000; $i++) {
shuffle($d);
$r = array_merge($r, array_slice($d, -6));
}
$r = array_count_values($r);
echo microtime(true) - $s_time, PHP_EOL;
$s_time = microtime(true);
$d = range(1, 33);
$r = array_fill(1, 33, 0);
for($i=0; $i<1000; $i++) {
shuffle($d);
foreach(array_slice($d, -6) as $k) $r[$k]++;
}
echo microtime(true) - $s_time, PHP_EOL;
------解决方案--------------------
建议楼主看看:ChartDirector软件,现在有破解的,很好用