Parámetros de la función de devolución de llamada USORT de PHP

Esta es una pregunta realmente esotérica, pero soy realmente curioso. Estoy usando Usort por primera vez hoy en años, y estoy particularmente interesado en lo que está sucediendo exactamente. Supongamos que tengo la siguiente matriz:

$myArray = array(1, 9, 18, 12, 56);

Podría arreglar esto con usort:

usort($myArray, function($a, $b){
  if ($a == $b) return 0;
  return ($a < $b) ? -1 : 1;
});

No estoy 100% seguro de lo que está pasando con los dos parámetros $ a y $ b. Qué son y qué representan. Quiero decir, podría suponer que $ a representa el elemento actual de la matriz, pero ¿con qué se compara esto exactamente? ¿Qué es $ b?

Podría aumentar mi matriz para incluir cadenas:

$myArray = array(
  array("Apples", 10),
  array("Oranges", 12),
  array("Strawberries", 3)
);

Y ejecuta lo siguiente:

usort($myArray, function($a, $b){
  return strcmp($a[0], $b[0]);
});

Y eso ordenaría mis matrices de niños en orden alfabético según el valor del índice [0]. Pero esto no ofrece ninguna claridad sobre lo que son $ ay $ b. Sólo sé que coinciden con el patrón que estoy buscando.

¿Alguien puede ofrecer algo de claridad sobre lo que realmente está ocurriendo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta