PHP多维数组的排序问题

数组具有非常强大的功能和灵活性,在PHP中应用非常广泛。PHP中提供了很多对于一维数组的排序函数,如sort(),ksort()等等,使用它们可以对一维数组很方便的进行排序。但不能用于二维数组排序,但我们可以利用PHP提供的usort(),uasort(),uksort()等函数进行二维排序。

使用usort()对一维数组排序:

function my_sort($a,$b)
{
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}

$a=array(4,2,8,6);
usort($a,"my_sort");

usort()函数通过用户自定义的比较函数进行排序,但不保存关键字。
uasort()将会保存关键字。
uksort()排序将基于关键字排序

使用usort()对二维数组排序:
$students = array(
  256 => array('name'=>'lili','grade'=>'35'),

  2 => array('name'=>'zhangsan','grade'=>'95'),
  3 => array('name'=>'wangwu','grade'=>'88')
);

function name_sort($x, $y){
  return strcasecmp($x['name'], $y['name']);
}

function grade_sort($x, $y){
  return $x['grade'] < $y['grade'];
}

uasort($students, 'name_sort');






















posted @ 2016-09-09 17:40  月夜暗流沙  阅读(378)  评论(0)    收藏  举报