2012-05-01 5 views
0

Voici mon code actuel pour ajouter au tableau:Commander un tableau par valeur de clé

foreach ($query->result() as $exp) { 
    $activities[] = array('type' => 'level', 'exp' => $exp->exp, 'timestamp' => $badge->timestamp); 
} 

Comment pourrais-je aller sur le tri de ce tableau en fonction de la valeur de la clé « timestamp »?

Répondre

2

Vous devrez utiliser usort qui vous permettra de trier la matrice à l'aide d'une fonction définie par l'utilisateur.

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

Exemple:

<?php 
function cmp($a, $b) 
{ 
    if ($a == $b) { 
     return 0; 
    } 
    return ($a < $b) ? -1 : 1; 
} 

$a = array(3, 2, 5, 6, 1); 

usort($a, "cmp"); 
+1

En prime, vous pouvez utiliser une fonction anonyme ou lambda comme votre fonction définie par l'utilisateur. – Zombaya

+0

Quels sont $ a et $ b? – Sneaksta

+0

@Sneaksta ce sont les deux valeurs du tableau. Jetez un oeil au lien vers le manuel, il devrait vous l'expliquer. –

0

je voudrais utiliser la fonction array-multisort pour le tri proprement dit, aussi je pourrait stocker les valeurs différemment:

foreach ($query->result() as $exp) { 
    $activities[$badge->timestamp] = array('type' => 'level',...); 
} 
array_multisort($activities, SORT_ASC, $array); 

http://php.net/manual/en/function.array-multisort.php

+1

Qu'est-ce que la variable $ array? – Sneaksta

+0

J'essaie de mettre strtotime ($ badge-> timestamp) comme clé, mais il ne l'acceptera pas. Il semble seulement aimer les lettres pour la clé, pas les nombres. Pourquoi est-ce? – Sneaksta

Questions connexes