Domanda

ho un array con i valori delle statistiche prese da 2 esecuzioni e la loro differenza.il nome della statistica è la chiave e mi è sconosciuto.Voglio mantenere l'associazione dell'indice

è così

$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

...

e voglio ordinarlo in modo decrescente in base alla differenza delle esecuzioni (che è la [chiave] [2])

Ho provato un ordine ma non riesco a trovare un modo per dirgli di ordinare in base alla differenza

È stato utile?

Soluzione

Prova qualcosa del genere:

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

uasort($array, "cmp");
.

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

Per mettere tutto su una riga puoi fare:

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

Altri suggerimenti

Utilizza uasort per mantenere l'associazione delle chiavi

uasort($array,function ($a,$b){
    if ($a[2] == $b[2]) {
        return 0;
    }
    return ($a[2] > $b[2]) ? -1 : 1;
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top