php数组排序

sort()  对索引数组进行升序排序,其反函数是 rsort()

 

asort() 对关联数组的值进行升序排序,其反函数是 arsort()

 

ksort() 对关联数组的键名进行升序排序,其反函数是 krsort()

 

usort() 对多维数组进行排序    (还有uasort()和uksort()函数,用法一样)

定义和用法

usort() 函数使用用户自定义的函数对数组排序。

注释:如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义。到 PHP 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。

注释:本函数为 array 中的元素赋予新的键名。这会删除原有的键名。

语法

usort(array,sorttype)
参数 描述
array 必需。规定要排序的数组。
function

必需。用户自定义的函数。

函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:

  • 如果 a = b, 返回 0
  • 如果 a > b, 返回 1
  • 如果 a < b, 返回 -1

例子

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

$arr = array("Peter", "glenn","Cleveland","peter","cleveland", "Glenn");

usort($arr, "my_sort");

print_r ($arr);
?>

输出:

Array
(
[0] => peter
[1] => glenn
[2] => cleveland
[3] => Peter
[4] => Glenn
[5] => Cleveland
)

 

例2

function compare($a,$b){
  if ($a[1]==$b[1]){
   return 0;
  }elseif ($a[1]>$b[1]){
   return 1;
  }else{
   return -1;
  }
 }
 
 $arr=array(
  array("df",123),
  array("aa",333),
  array("gg",222)
 );
 print_r($arr);
 
 echo "<br>";
 usort($arr,‘compare‘);
 
 print_r($arr);

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。