这是一个非常深奥的问题,但我真的很好奇。多年来我第一次使用 usort,我对到底发生了什么特别感兴趣。假设我有以下数组:
$myArray = array(1, 9, 18, 12, 56);
我可以用 usort 对其进行排序:
usort($myArray, function($a, $b){
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
});
我不是 100% 清楚 $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 是什么。我只知道匹配我正在寻找的模式。
有人可以提供一些关于实际发生的事情的说明吗?