Pergunta

eu tenho um array com os valores das estatísticas retiradas de 2 execuções e suas diferenças.o nome da estatística é a chave e é desconhecido para mim.Quero manter a associação do índice

é assim

$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 quero ordenar numericamente decrescente de acordo com a diferença das execuções (que é a [chave][2])

eu tentei um sort, mas não consigo encontrar uma maneira de ordenar de acordo com a diferença

Foi útil?

Solução

Tente algo assim:

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

uasort($array, "cmp");

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

Para colocar tudo em uma linha você pode fazer:

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

Outras dicas

Usar uasort para manter a associação de chaves

uasort($array,function ($a,$b){
    if ($a[2] == $b[2]) {
        return 0;
    }
    return ($a[2] > $b[2]) ? -1 : 1;
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top