Trier tableau multidimensionnel

Résolu
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009 - 27 août 2008 à 18:02
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009 - 28 août 2008 à 13:27
Bonjour,

Je souhaiterais trier ce tableau multidimensionnel :

Array(
    [1] => Array(
        [Num] => 5
        [LastCrPV] => 10
        [Weapon] => 0
        [CID] => 3
        [IR] => 23
    )
    [2] => Array(
        [Num] => 7
        [LastCrPV] => 15
        [Weapon] => 4
        [CID] => 4
        [IR] => 18
    )
    [3] => Array(

        [Num] => 1

        [LastCrPV] => 11
        [Weapon] => 8

        [CID] => 4

        [IR] => 85

    )

    ETC...

)

En fonction du champ IR et dans l'ordre décroissant. Quelqu'un aurait-il un astuce pour faire cela simplement ?

Je sais qu'il existe la fonction array_multisort mais je ne vois pas trop comment m'en sortir avec.

Merci.

2 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 août 2008 à 19:38
Hello,

<?php
function sortOnIR($a, $b) {
    if(isset($a['IR']) && isset($b['IR'])) {
        if($a['IR'] < $b['IR']) {
            return 1;
        } elseif($a['IR'] > $b['IR']) {
            return -1;
        }
    }
    return 0;
}

$aTab = Array(
    1 => Array(
        'Num' => 5,
        'LastCrPV' => 10,
        'Weapon' => 0,
        'CID' => 3,
        'IR' => 23
    ),
    2 => Array(
        'Num' => 7,
        'LastCrPV' => 15,
        'Weapon' => 4,
        'CID' => 4,
        'IR' => 18
    ),
    3 => Array(
        'Num' => 1,
        'LastCrPV' => 11,
        'Weapon' => 8,
        'CID' => 4,
        'IR' => 85
    )
);
  
usort($aTab, 'sortOnIR');
print_r($aTab);
?>
3
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
28 août 2008 à 13:27
Merci beaucoup !
0
Rejoignez-nous