2009-12-28 11 views
3

Je suis nouveau sur PHP. J'ai un tableau PHP bidimensionnel. Le tableau "interne" a une valeur que je veux trier.Tri d'un tableau bidimensionnel

Par exemple:

$myarray[1]['mycount']=12 
$myarray[2]['mycount']=13 
$myarray[3]['mycount']=9 

Je veux trier le tableau "intérieur" dans l'ordre décroissant.

Ainsi, les résultats pour les éléments suivants seront 13, 12, 9

foreach ($myarray as $myarr){ 
    print $myarr['mycount'] 
} 

merci à l'avance.

Répondre

7

Vous pouvez utiliser usort(); pour effectuer un tri selon une comparaison définie par l'utilisateur.

// Our own custom comparison function 
function fixem($a, $b){ 
    if ($a["mycount"] == $b["mycount"]) { return 0; } 
    return ($a["mycount"] < $b["mycount"]) ? -1 : 1; 
} 

// Our Data 
$myarray[0]['mycount']=12 
$myarray[1]['mycount']=13 
$myarray[2]['mycount']=9 

// Our Call to Sort the Data 
usort($myArray, "fixem"); 

// Show new order 
print "<pre>"; 
print_r($myArray); 
print "</pre>"; 
+0

Je reçois l'erreur suivante « sort() paramètre 2 attend à être long, tableau donné » – Tihom

+0

Je l'ai appelé la fonction de tri sorte qui est déjà pris. Je l'ai maintenant changé en cmp. Je reçois une erreur différente: usort() [function.usort]: Fonction de comparaison invalide – Tihom

+0

Montre-moi à quoi ressemble ton code. – Sampson