//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降序声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。


精彩评论