用PHP对二维数组进行排序:
第一种方法:遍历生成新数组用 array_multisort()
方法排序;
/**
* 二维数组的排序
* @param array $arr 需要排序的二维数组
* @param string $field 以这个数组的值来排序
* @param string $direction 排序规则 SORT_ASC 升序 SORT_DESC降序
* @return array 排序后的数组
* @author http://blog.m1910.com/
*/
function sort_array($arr, $field, $direction = 'SORT_DESC')
{
$arrSort = array();
foreach($arr AS $uniqid => $row){
foreach($row AS $key=>$value){
$arrSort[$key][$uniqid] = $value;
}
}
array_multisort($arrSort[$field], constant($direction), $arr);
return $arr;
}
第二种方法:利用 usort()
自定义排序进行排序
/**
* 二维数组的排序
* @param array $arr 需要排序的二维数组
* @param string $field 以这个数组的值来排序
* @return array 排序后的数组
* @author http://blog.m1910.com/
* @备注:默认升序,需要降序把$a和$b调换位置就好了
*/
function sort_array($arr, $field)
{
usort($arr, function ($a, $b) use ($field) {
return ($a[$field] - $b[$field]);
});
return $arr;
}
边学习边总结,很不错。
大王叫我来巡山,我把博客转一转。(*^__^*) 嘻嘻……
专业
现在不折腾了,有问题打电话
php的函数还是很好用的 有时候写了半天方法 发现已经有一个函数 就能解决了
同感,还是基础没打好
这个不错,用的时候直接过来拿,哈哈
的确是这样的!