Question

J'ai un tableau avec les valeurs des statistiques tirées de 2 exécutions et leur différence. Le nom de la statistique est la clé et il m'est inconnu. Je veux maintenir l'association d'index

c'est comme ça

$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

...

Et je veux le trier descendant numériquement en fonction de la différence des exécutions (qui est la [clé] [2])

J'ai essayé ASORT mais je ne trouve pas de moyen de le dire de trier en fonction de la différence

Était-ce utile?

La solution

Essayez quelque chose comme ceci:

function cmp($a, $b)
{
    return $b[2] - $a[2]
}

uasort($array, "cmp");

http://www.php.net/manual/en/fonction.uasort.php

Pour tout mettre sur une seule ligne, vous pouvez faire:

uasort($array, function($a, $b){ return $b[2] - $a[2] });

Autres conseils

Utilisation uasort Pour maintenir l'association des clés

uasort($array,function ($a,$b){
    if ($a[2] == $b[2]) {
        return 0;
    }
    return ($a[2] > $b[2]) ? -1 : 1;
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top