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" } } //---------------------排序后的数组打印效果 结束--------------------- |