2010-06-10 5 views
3

J'ai un tableau multidimensionnel « simple » qui ressemble à ceci:tableaux multidimensionnels tri en PHP

array(3) { 
    ["user 1"]=> 
    array(4) { 
    [0]=> 
    array(1) { 
     ["item 4"]=> 
     string(5) "11385" 
    } 
    [1]=> 
    array(1) { 
     ["item 2"]=> 
     string(6) "144268" 
    } 
    [2]=> 
    array(1) { 
     ["item 1"]=> 
     string(5) "65774" 
    } 
    [3]=> 
    array(1) { 
     ["item 9"]=> 
     string(5) "98523" 
    } 
    } 
    ["user 5"]=> 
    array(1) { 
    [0]=> 
    array(1) { 
     ["item 8"]=> 
     string(6) "239233" 
    } 
    } 
    ["user 2"]=> 
    array(2) { 
    [0]=> 
    array(1) { 
     ["item 4"]=> 
     string(5) "53718" 
    } 
    [1]=> 
    array(1) { 
     ["item 1"]=> 
     string(6) "154687" 
    } 
    } 
} 

Ce que je dois faire est de simplement sorte mon tableau d'abord par les utilisateurs, puis par des objets. Ascendant. Comment pourrais-je faire ça? Je fournirai du code si nécessaire :)

Merci!

Répondre

5

ksort sortes par la

clé
$newArray = array(); 

# start by sorting users 
$yourArray = ksort($yourArray); 

# then sort sub items 
foreach($yourArray as $user=>$theirItems) { 
    $theirItems = ksort($theirItems); # assuming you still want to sort by key; 
    $newArray[$user] = $theirItems; 
} 

var_dump($newArray); 
1

Utilisez usort() puis créez deux fonctions de comparaison et triez votre tableau en les utilisant l'un après l'autre.

Questions connexes