这是一个非常深奥的问题,但我真的很好奇。今天是多年来我第一次使用usort函数,我特别想知道到底发生了什么。假设我有以下数组:
$myArray = array(1, 9, 18, 12, 56);
我可以使用usort来排序这个数组:usort($myArray, function($a, $b){
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
});
我不完全清楚两个参数$a和$b究竟是什么。它们代表什么?我是指,我可以假设$a代表数组中的当前项,但这与什么进行比较呢?$b又是什么?
我可以将我的数组扩展到包括字符串:
$myArray = array(
array("Apples", 10),
array("Oranges", 12),
array("Strawberries", 3)
);
然后运行以下代码:
usort($myArray, function($a, $b){
return strcmp($a[0], $b[0]);
});
这将按照[0]索引值对我的子数组进行字母顺序排序。但是这并没有提供任何关于$a和$b是什么的明确说明。我只知道它们匹配我正在寻找的模式。
有人能提供一些关于实际发生的事情的澄清吗?