用PHP寫排序,雖然PHP自動了很多排序方式,SQL語句也可以很快速的從數據庫裡有序的讀出數據。但是不同的需求還有靈活
運用所學的PHP基礎知識。
我想完成如下的效果
排序算法效果圖
就是把一個數值中所以的數據按時間排序並且分行顯示
<?php
$array = $mysql->query_array($mysql->sql_select("user","userid,truename,year"," ")); //從數據庫裡面讀出數據
$year = array(); //設置空數組
foreach($array as $value)
{
array_push($year,$value[2]); //把數據數組裡面的時間數據入棧
}
$year = array_unique($year); //去除數組中重復的數據
usort($year, "strnatcmp"); //將數組中的數據按自然數排序
$num = count($year); //統計數據中數據的個數
/*處理函數*/
function isyear($value,$array)
{
$user = array(); //建立空數組
foreach($array as $val)
{
if($val[2] == $value)
{
array_push($user,$val);
}
}
return $user; //返回數組
}
?>
上面字數處理函數。下面是顯示部分代碼
<?php
for($i=0;$i<$num;$i++)
{
echo "<div class='box_user'>";
echo "<div class='boxleft'>{$year[$i]}屆</div>";
echo "<div class='boxright'>";
$user = isyear($year[$i],$array);
foreach($user as $v)
{
echo "<span class={$v[0]}>{$v[1]}</span>";
}
echo "</div>";
echo "</div>";
}
?>
數據顯示代碼應該好理解,我這裡就不一行一行寫注釋了。
這樣我們就可以得到開始我們需要的效果。不要以為這樣就完了。。這只是第一步的想法,把實際的問題抽象成代碼。也不知道效果怎麼樣?
我們可以通過時間戳來計算頁面加載數據耗時和用PHP自動函數。
<?php
memory_get_usage();
?>
來計算代碼在運行的所占的內存。