您的位置:首页 > 编程语言 > PHP开发

修改了thinkphp的数组排序函数

2013-05-07 19:44 176 查看
thinkphp里有一个数组排序的函数,我对它作出了一些修改,可以支持二维数组排序,三维数组排序等多维数组排序。查看源代码打印帮助
1
/**
2
+----------------------------------------------------------
3
* 对列表数组进行排序
4
+----------------------------------------------------------
5
* @param array $list 列表数组
6
* @param string $field 排序的字段名
7
* 例:$list 为二维时 $field='["field_name"]' $list为三维时 $field='["field_name"]['field_name']';
8
* @param array $sortby 排序类型
9
* asc正向排序 desc逆向排序 nat自然排序
10
+----------------------------------------------------------
11
* @return array
12
+----------------------------------------------------------
13
*/
14
function
list_sort_by(
$list
,
$field
,
$sortby
=
'asc'
) {
15
if
(
is_array
(
$list
)){
16
$refer
=
$resultSet
=
array
();
17
foreach
(
$list
as
$i
=>
$data
)
18
eval
(
'$refer[$i]=&$data'
.
$field
.
';'
);
19
switch
(
$sortby
) {
20
case
'asc'
:
// 正向排序
21
asort(
$refer
);
22
break
;
23
case
'desc'
:
// 逆向排序
24
arsort(
$refer
);
25
break
;
26
case
'nat'
:
// 自然排序
27
natcasesort(
$refer
);
28
break
;
29
}
30
foreach
(
$refer
as
$key
=>
$val
)
31
//$resultSet[] =&$list[$key];
32
$resultSet
[
$key
] =&
$list
[
$key
];
//维持原来索引
33
return
$resultSet
;
34
}
35
return
false;
36
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐