PHP二维数组排序的两种方法
1、用自带的array_multisort的方法(会重新建立数字索引)
2、自写array_sort函数:(保留原数字索引)
事例代码如下:
function array_sort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } if ($type == 'asc') { asort($keysvalue); } else { arsort($keysvalue); } //print_r($keysvalue); reset($keysvalue); foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; } $array = array( array('name' => '手机', 'brand' => '诺基亚', 'price' => 1050), array('name' => '笔记本电脑', 'brand' => 'lenovo', 'price' => 4300), array('name' => '剃须刀', 'brand' => '飞利浦', 'price' => 3100), array('name' => '跑步机', 'brand' => '三和松石', 'price' => 4900), array('name' => '手表', 'brand' => '卡西欧', 'price' => 960), array('name' => '液晶电视', 'brand' => '索尼', 'price' => 6299), array('name' => '激光打印机', 'brand' => '惠普', 'price' => 1200) ); echo "<pre>"; print_r($array); echo "</pre>"; foreach ($array as $key => $val) { $tmp[$key] = $val['price']; } array_multisort($tmp, SORT_DESC, $array); echo "<pre>"; print_r($array); echo "</pre>"; $ShoppingList = array_sort($array, 'price'); echo "<pre>"; print_r($ShoppingList); echo "</pre>";
参考:http://my.oschina.net/zzqphper/blog/214149
http://www.nowamagic.net/php/php_TwoDimensionalArraySort.php