php二维数组多字段,php二维数组多字段排序实现mysql order功能

php二维数组多字段排序实现mysql order功能:即按照某个字段排序时如果字段相同,再按照第二个字段排序

使用php原生的array_multisort()函数,执行速度会快些且降低自定义函数的依赖,关于array_multisort详细使用 参考:http://blog..net/nuli888/article/details/52145187

function sortByCols($list,$field){

$sort_arr=array();

$sort_rule='';

foreach($field as $sort_field=>$sort_way){

foreach($list as $key=>$val){

$sort_arr[$sort_field][$key]=$val[$sort_field];

}

$sort_rule .= '$sort_arr["' . $sort_field . '"],'.$sort_way.',';

}

if(empty($sort_arr)||empty($sort_rule)){ return $list; }

eval('array_multisort('.$sort_rule.' $list);');//array_multisort($sort_arr['parent'], 4, $sort_arr['value'], 3, $list);

return $list;

}

$list = array(

array('id' => 1, 'value' => '1-1', 'parent' => 1),

array('id' => 2, 'value' => '2-1', 'parent' => 1),

array('id' => 3, 'value' => '3-1', 'parent' => 1),

array('id' => 4, 'value' => '4-1', 'parent' => 2),

array('id' => 5, 'value' => '5-1', 'parent' => 2),

array('id' => 6, 'value' => '6-1', 'parent' => 3),

);

$list = sortByCols($list, array(

'parent' => SORT_ASC,

'value' => SORT_DESC,

));

print_r($list);exit;

Array

(

[0] => Array

(

[id] => 3

[value] => 3-1

[parent] => 1

)

[1] => Array

(

[id] => 2

[value] => 2-1

[parent] => 1

)

[2] => Array

(

[id] => 1

[value] => 1-1

[parent] => 1

)

[3] => Array

(

[id] => 5

[value] => 5-1

[parent] => 2

)

[4] => Array

(

[id] => 4

[value] => 4-1

[parent] => 2

)

[5] => Array

(

[id] => 6

[value] => 6-1

[parent] => 3

)

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值