ordenar una matriz con claves desconocidas y mantener la asociación de índice en php
-
29-10-2019 - |
Pregunta
tengo una matriz con los valores de las estadísticas tomadas de 2 ejecuciones y su diferencia.el nombre de la estadística es la clave y no lo conozco.Quiero mantener la asociación de índices
es así
$array["statistic_name_1"][0] = 5
$array["statistic_name_1"][1] = 4
$array["statistic_name_1"][2] = 1
$array["statistic_name_2"][0] = 10
$array["statistic_name_2"][1] = 4
$array["statistic_name_2"][2] = 6
$array["statistic_name_3"][0] = 15
$array["statistic_name_3"][1] = 10
$array["statistic_name_3"][2] = 5
...
y quiero ordenarlo de forma descendente según la diferencia de las ejecuciones (que es la [clave] [2])
He intentado ordenar, pero no encuentro la manera de decirle que ordene según la diferencia
Solución
prueba algo como esto:
function cmp($a, $b)
{
return $b[2] - $a[2]
}
uasort($array, "cmp");
http://www.php.net/manual/en/function.uasort.php
para ponerlo todo en una línea que puede hacer:
uasort($array, function($a, $b){ return $b[2] - $a[2] });
Otros consejos
Use uasort
para mantener la asociación de claves
uasort($array,function ($a,$b){
if ($a[2] == $b[2]) {
return 0;
}
return ($a[2] > $b[2]) ? -1 : 1;
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow