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