唔~
今天把 BASS Project 的 News 功能生出來。
中間用到 Sort 的功能。
說起來,這東西有點死,要排序還挺辛苦的(苦笑
PHP 的陣列排序函式大概有兩種。
sort 和 ksort 這樣。
sort 就是一般排序,照 a-z 來排列。
而 ksort 則是以 key 來排序。
而把這些前面加上個 u 就變成「套用函式排序」
像是 usort 這樣。
不過,這都僅限一維陣列。
當二維陣列時怎麼辦呢?
usort 就能派上用場了……
(不過很可惜,他嵌套的函式不能指定 key, 必須固定)
也許該用 usort 的 Object 方法吧……
而傳回值分三種:
-1, 0, 1 三個……
1 就是往前排放,而-1就是往後,那麼0就是不動。
(某弦是這樣記拉……)
像是依照時間排列時,這個就很方便。
不過說真的,陣列排序在檔案類處理比較常見。
(畢竟資料庫可以用 ORDER BY time DESC 來直接處理)
套用方法不難:
<?php
function cmp_desc($a, $b){
if($a == $b) return 0;
return ($a > $b) ? 1 : -1;
}
$array = array(3,5,9,6,10,12);
usort($array, "cmp_desc"); //逆序排列
?>
上面結果會把陣列重新排成:12,10,9,6,5,3
算是簡單,這樣我也稍微搞懂排序了 XD
看不懂….
@森林:
就是些概念(望
是usort