Это действительно эзотерический вопрос, но мне действительно любопытно. Я использую 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. Я знаю только, что совпадение с шаблоном, который я ищу.
Может кто-нибудь дать некоторую ясность относительно того, что на самом деле происходит?