复代码 代码如下:
/**
* 2차원 배열을 특정 레벨 2 항목으로 정렬하려면 array_multisort() 함수를 사용하세요.
*
* sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……)
* @author Chunsheng Wang
* @param array $ArrayData 정렬할 배열입니다.
* @param string $KeyName1 정렬 기준이 되는 첫 번째 항목입니다.
* @param string $SortOrder1 정렬 순서("SORT_ASC"|"SORT_DESC")
* @param string $SortType1 정렬 유형("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING")
* @return 배열 정렬된 배열입니다.
*/
function sysSortArray( $ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR")
{
if(!is_array($ArrayData))
{
return $ArrayData;
}
$ArgCount = func_num_args();
for($I = 1;$I {
$Arg = func_get_arg($I);
if(!eregi("SORT",$Arg))
{
$KeyNameList[] = $Arg;
$SortRule[] = '$'.$Arg;
}
else
{
$SortRule[] = $Arg;
}
}
foreach($ArrayData AS $Key => $Info)
{
foreach($KeyNameList AS $KeyName)
{
${$KeyName }[$Key] = $Info[$KeyName];
}
}
$EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);';
평가($EvalString);
$ArrayData를 반환합니다.
}
//################ 示例 ################
$arr = array(
array(
'name' => '학술',
'size' => '1235',
'type' => 'jpe',
' time' => '1921-11-13',
'class' => 'D',
),
array(
'name' => '중국功夫',
'크기' => '153',
'유형' => 'jpe',
'시간' => '2005-11-13',
'클래스' > 'J',
),
array(
'name' => '编程',
'size' => '35',
'type' => ; 'gif',
'시간' => '1997-11-13',
'클래스' => 'A',
),
배열(
'이름 ' => '중국功夫',
'크기' => '65',
'유형' => 'jpe',
'시간' => ',
'class' => 'D',
),
array(
'name' => '중국功夫',
'size' => '5 ',
'유형' => '아이콘',
'시간' => '1967-12-13',
'클래스' =>
);
print_r($arr);
//注의의: 按光数字方式排序时 153 比 65 소문자
$temp = sysSortArray($arr,"class","SORT_ASC","type","SORT_DESC","size","SORT_ASC" ,"SORT_STRING");
echo "";
print_r($temp);
?>