PHP数组的二维排序

这段时间做数据统计,产品那边要求数据能按高到低排序,想了很多方法,都不行。最后找到PHP的array_multisort()方法。虽然实现了效果,但对这个方法还是半董半董

下边就是使用的实例,手册上的例子不列了,就我自己工作中的几个。

工作中碰到最多的可能就是二维数组了,想试试三维数组,但是想想还是算了。





header('Content-Type: text/html; charset=utf-8');
 echo '<pre>';
 //原始数组格式
 $array = array(
     'key1' => array(
         'item1' => '65',
         'item2' => '35',
         'item3' => '84',
     ),
     'key2' => array(
         'item1' => '24',
     ),
     'key3' => array(
         'item1' => '38',
         'item3' => '45',
     ),
 );
 //要排序的键
 //按照数组中的 item1进行排序
 //你也可以换成item2
 $sort = 'item1';
 foreach($array as $k => $v)
 {
     $newArr[$k] = $v[$sort];
 }
 //这个函数如果执行正确他会直接改变原数组键值的顺序
 //如果执行失败,那么他会返回 bool(false)
 array_multisort($newArr,SORT_DESC, $array);
 var_dump($array);
 //---------------------排序后的数组打印效果 开始--------------------
 array(3) {
   ["key1"]=>
   array(3) {
     ["item1"]=>
     string(2) "65"
     ["item2"]=>
     string(2) "35"
     ["item3"]=>
     string(2) "84"
   }
   ["key3"]=>
   array(2) {
     ["item1"]=>
     string(2) "38"
     ["item3"]=>
     string(2) "45"
   }
   ["key2"]=>
   array(1) {
     ["item1"]=>
     string(2) "24"
   }
 }
 //---------------------排序后的数组打印效果 结束---------------------
posted @ 2013-03-25 20:10  暂时菜鸟  Views(95)  Comments(0Edit  收藏  举报