2

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

谁能帮我吗?

这是一个例子:

 <?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);  
 ?>

这里发生了什么?

4

1 回答 1

3

手册中所述,您的函数(my_sort在这种情况下)应返回:

  • -1如果您认为$a小于,则为负整数(在这种情况下)$b
  • $a如果您认为大于,则为正整数$b
  • 0如果你认为它们是一样的。

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

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

于 2012-05-16T06:32:02.310 回答