/**
* @package BugFree
* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
* 對第二個項目進行二組數字組進行二項維數組排序使用array_multisort() 函數。
*
* sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"…)
* @作者 m array $ArrayData 要排序的陣列。
* @param string $KeyName1 第一個排序依據。
* @param string $SortOrder1 要排序的順序("SORT_ASC"|"SORT_DESC")
* @param string $ SortType1 排序類型("SORT_REGULAR"|"SORT_MERType1 排序型 排序陣列。
*/
function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR")
{
); I {
$Arg = func_get_arg($I);
$KeyNameList[] = $Arg;
$ SortRule [] = '$'.$Arg;
}
else
}
}
// 以鍵取得於鍵的值並放入陣列中。
foreach( $ArrayData AS $Key => $Info)
{
foreach($KeyNameList AS $KeyName)
[$KeyName];
}
}
//建立eval 字串並對其進行評估。
$EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);';
eval ($EvalString);
############## 範例#################
$arr = array(
array(
'尺寸' => '1235',
與 => '1921-11-13',
'班級' => (
'名稱' => 與中功夫',
'尺寸與 => 'jpe',
'時' => ; ' => 'jj',
),
陣列(
'name' => '程式設計',
'size' => ',
'time' => '1997-11-13',
dd',
),
array(
'name' '65',
'type' => 'jpe',
'time -13',
'class' => 'yy',
), '中國功夫',
'size' => '5',
' ,
'time' => '1967-12-13',
;
print_r($arr);
//注意:依照數字方式排序時153 比65 小
$temp = sysSortArray($arr,"name","SORT_ASC","type","SORT_DESC","size","SORT_ASC","SORT_STRING");
print_
print_r($temp);
?>
其他相關排序函數:
注意: 本函數為array 中的單元賦予新的鍵名.這將刪除原有的鍵名而不僅是重新排序.
$arr = array(9,5,2,6,8,4,3,1); sort( $arr); print_r($arr); ?>
輸出:(可以看到鍵值關聯不再保持)
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 8 [7] => 9 )
asort ( array &$array [, int $sort_flags] )
rsort ( array &$array [, int $sort_flags] )
若成功則回傳 TRUE,失敗則回傳 FALSE。
arsort ( array &$array [, int $sort_flags] )
本函數對數組進行逆向排序,數組的索引保持和單元的關聯。主要用於對那些單元順序很重要的結合數組進行排序。 arsort()函數與asort()相同,只是它以相反的順序(降序)對數組元素排序。
若成功則回傳 TRUE,失敗則回傳 FALSE。
ksort ( array &$array [, int $sort_flags] )
ksort和sort的區別就是對數組按照鍵名排序而不是按值排序,保留鍵名到數據的關聯.本函數主要用於關聯數組. 如果成功則回傳TRUE,失敗則回傳FALSE。
krsort ( array &$array [, int $sort_flags] )
見ksort,該函數同ksort只是把ksort後的結果逆序排序而已。
natsort ( array &$array )
本函數實現了一個和人們通常對字母數字字符串進行排序的方法一樣的排序算法並保持原有鍵/值的關聯,這被稱為“自然排序” .本演算法和通常的電腦字串排序演算法(用於sort())的區別見下面範例.
如果成功則返回TRUE,失敗則返回FALSE.
php手冊中有個非常經典的例子
上例將輸出:Standard sorting
Array ( [0] => img1.png [1] = > img10.png [2] => img12.png [3] => img2.png )
Natural order sorting
Array ( [3] => img1.png [2] => img2.
Array ( [3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png )