Esta es una pregunta realmente esotérica, pero estoy realmente curioso. Estoy usando usort por primera vez hoy en años, y estoy particularmente interesado en qué está sucediendo exactamente. Supongamos que tengo la siguiente matriz:Parámetros de la función de devolución de llamada USORT PHP
$myArray = array(1, 9, 18, 12, 56);
que podía resolver esto con usort:
usort($myArray, function($a, $b){
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
});
no estoy 100% claro acerca de lo que está pasando con los dos parámetros de $ a $ y segundo. ¿Qué son y qué representan? Quiero decir, podría suponer que $ a representa el elemento actual en el conjunto, pero ¿con qué exactamente se compara esto? ¿Qué es $ b?
pude aumentar mi matriz para incluir cadenas:
$myArray = array(
array("Apples", 10),
array("Oranges", 12),
array("Strawberries", 3)
);
y ejecute los siguientes:
usort($myArray, function($a, $b){
return strcmp($a[0], $b[0]);
});
Y eso lo solucionaría mi hijo-arrays alfabéticamente en base a la [0] valor del índice. Pero esto no ofrece ninguna claridad sobre lo que son $ a y $ b. Solo sé que coinciden con el patrón que estoy buscando.
¿Alguien puede aportar algo de claridad sobre lo que realmente está ocurriendo?
+1 Siempre he pensado lo mismo. – alex