用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(); ?>
來計算代碼在運行的所占的內存。