Ian 懶惰蟲筆記
2008年7月6日 星期日
PHP - usort、uasort 陣列自訂排序
$_arr = array(
array('no'=>'2','type'=>'A'),
array('no'=>'1','type'=>'C'),
array('no'=>'2','type'=>'B'),
array('no'=>'4','type'=>'A'),
array('no'=>'3','type'=>'C'),
array('no'=>'1','type'=>'A')
);
function compare($ar1, $ar2)
{
if ($ar1['no']<$ar2['no'])
return -1;
else if ($ar1['no']>$ar2['no'])
return 1;
if ($ar1['type']<$ar2['type'])
return -1;
else if ($ar1['type']>$ar2['type'])
return 1;
return 0;
}
usort($_arr, 'compare');
echo('
');
print_r( $_arr );
echo('
');
此範例相當於 SQL 的
order by no, type
。
原本的陣列︰
key | no type
--------------
0 | 2 A
1 | 1 C
2 | 2 B
3 | 4 A
4 | 3 C
5 | 1 A
usort
排序後的陣列︰
key | no type
--------------
0 | 1 A
1 | 1 C
2 | 2 A
3 | 2 B
4 | 3 C
5 | 4 A
將 usort 改成
uasort
排序後的陣列︰
key | no type
--------------
5 | 1 A
1 | 1 C
0 | 2 A
2 | 2 B
4 | 3 C
3 | 4 A
1 則留言:
匿名
2008年7月23日 中午12:49
寫成物件~
然後自動判斷欄位
"no", "type" 自動判斷~
這樣比較方便啦~
回覆
刪除
回覆
回覆
新增留言
載入更多…
‹
›
首頁
查看網路版
寫成物件~
回覆刪除然後自動判斷欄位
"no", "type" 自動判斷~
這樣比較方便啦~