php多维数组排序的方法
问题源自德问上的一个问答:http://www.dewen.org/q/4352
代码如下:
<?php $array = array( '0' => array('3', 'one'), '1' => array('101', 'two'), '2' => array('12', 'three'), '3' => array('13', 'four'), '4' => array('1', 'five'), '5' => array('3', 'six'), ); /*方法一:使用的是uasort()函数,而不是usort()函数,区别在于,uasort()会保持原来的索引,usort()会重建索引。*/ function cmp($a, $b){ if($a[0] == $b[0]){ return 0; } return($a[0] < $b[0]) ? -1 : 1; } uasort($array,"cmp"); print_r($array); echo "<br/>**********************<br/>"; /*方法二: 使用array_multisort*/ foreach ($array as $key=>$value){ $first[$key] = $value[0]; $second[$key] = $value[1]; } array_multisort($first,SORT_NUMERIC,SORT_ASC,$second,SORT_STRING,SORT_ASC,$array); print_r($array); /* 排序顺序标志: SORT_ASC – 按照上升顺序排序 SORT_DESC – 按照下降顺序排序 排序类型标志: SORT_REGULAR – 将项目按照通常方法比较 SORT_NUMERIC – 将项目按照数值比较 SORT_STRING – 将项目按照字符串比较 */