//php按照一维或者多维数组排序,这样举例二维数组排序可借助php系统自带的array_multisort()函数实现,当然实现方式肯定不止一种。。 $arr = array( 0 =>array('goods_id'=>'122','goods_name'=>'中西医结合健康精英套餐A(女已婚)','discount'=>'0.9'), 1 =>array('goods_id'=>'574','goods_name'=>'测试体检套餐','discount'=>'0.83'), 2 =>array('goods_id'=>'499','goods_name'=>'关爱基础套餐(女)','discount'=>'0.65'), 3 =>array('goods_id'=>'239','goods_name'=>'商务精英(女未婚)','discount'=>'0.4'), 4 =>array('goods_id'=>'525','goods_name'=>'入职无忧套餐(男女通用)','discount'=>'0.7'), ); //按照discount元素从高到低降序排序 可使用php自带的这个函数array_multisort() foreach($arr as $key => $val) { //遍历循环$arr 将$arr每次的$key作为sort数组中的$key $sort数组中$key对应的值为$arr中的当前一维数组($val)的discount元素的值 $sort[$key] = $val['discount']; } /*var_dump($sort); 是一个一维数组 输出如下所示: array (size=5) 0 => string '0.9' (length=3) 1 => string '0.83' (length=4) 2 => string '0.65' (length=4) 3 => string '0.4' (length=3) 4 => string '0.7' (length=3) */ array_multisort($sort,SORT_DESC,$arr); //array_multisort()第一个参数是要被排序的数组即($sort),第二个参数是要按照什么排序(SORT_DESC)降序排序,最后一个参数把$arr作为最后一个参数,以通用键排序 var_dump($arr); //输出经过$arr数组按照discount排序之后的数组 /* * 输出如下所示: * array (size=5) 0 => array (size=3) 'goods_id' => string '122' (length=3) 'goods_name' => string '中西医结合健康精英套餐A(女已婚)' (length=49) 'discount' => string '0.9' (length=3) 1 => array (size=3) 'goods_id' => string '574' (length=3) 'goods_name' => string '测试体检套餐' (length=18) 'discount' => string '0.83' (length=4) 2 => array (size=3) 'goods_id' => string '525' (length=3) 'goods_name' => string '入职无忧套餐(男女通用)' (length=36) 'discount' => string '0.7' (length=3) 3 => array (size=3) 'goods_id' => string '499' (length=3) 'goods_name' => string '关爱基础套餐(女)' (length=27) 'discount' => string '0.65' (length=4) 4 => array (size=3) 'goods_id' => string '239' (length=3) 'goods_name' => string '商务精英(女未婚)' (length=27) 'discount' => string '0.4' (length=3) * */ //这样确实 实现了$arr按照discount降序排序。。 //注意:array_multisort()第二个参数 按照什么顺序排序,SORT_DESC降序,SORT_ASC降序
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论