修改了thinkphp的数组排序函数

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*/
14function 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}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值