谁能解释一下 PHP 中的 uksort() 是如何工作的


Can anyone explain how uksort() in PHP works?

我在PHP手册中读过uksort,但很难理解。

谁能帮我?

下面是一个示例:

 <?php  
 function my_sort($x, $y)  
 {  
   if ($x == $y) return 0;  
   return ($x > $y) ? -1 : 1;  
 }  
 $people = array(
   "10" => "javascript",  
   "20" => "php", "60" => "vbscript",  
   "40" => "jsp");  
 uksort($people, "my_sort");  
 print_r($people);  
 ?>

这是怎么回事?

如手册中所述,您的函数(在本例中my_sort(应返回:

  • 负整数(在本例中为 -1 (,如果您认为$a小于 $b
  • 如果认为$a大于 $b,则为正整数
  • 0您是否认为它们是相同的。

正如您可能已经猜到的那样,uksort将使用您的比较函数来查看元素在排序数组中的顺序。它将多次调用您的函数,每次使用两个键。您将这些键与彼此的键进行比较,并返回结果。

这个想法是,你可以编写自己的比较函数,做一些不平凡的事情,例如,如果你想让某个键始终排在第一位。您的简单示例可以使用常规 krsort。