php二维数组排序

//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降序


声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与