2010-11-22 4 views
4

Comment puis-je trier le tableau ci-dessous par l'une des valeurs enfant (i.e: ID_poste, nom d'utilisateur, etc ...)?Trier le tableau parent par la valeur enfant

Array(
[0] => Array 
    (
     [id] => 10 
     [post_id] => 398 
     [user_id] => 0 
     [view_date] => 2010-11-20 15:26:00 
     [views] => 4 
     [username] => <em>guest</em> 
    ) 

[1] => Array 
    (
     [id] => 9 
     [post_id] => 397 
     [user_id] => 1 
     [view_date] => 2010-11-19 23:35:39 
     [views] => 1 
     [username] => Fire G 
    ) 

[2] => Array 
    (
     [id] => 8 
     [post_id] => 398 
     [user_id] => 1 
     [view_date] => 2010-11-19 23:35:26 
     [views] => 4 
     [username] => Fire G 
    ) 

[3] => Array 
    (
     [id] => 7 
     [post_id] => 396 
     [user_id] => 1 
     [view_date] => 2010-11-19 23:07:57 
     [views] => 3 
     [username] => Fire G 
    ) 

[4] => Array 
    (
     [id] => 6 
     [post_id] => 396 
     [user_id] => 1 
     [view_date] => 2010-11-19 23:07:55 
     [views] => 3 
     [username] => Fire G 
    ) 

[5] => Array 
    (
     [id] => 5 
     [post_id] => 396 
     [user_id] => 1 
     [view_date] => 2010-11-19 23:07:52 
     [views] => 3 
     [username] => Fire G 
    ) 

[6] => Array 
    (
     [id] => 4 
     [post_id] => 13 
     [user_id] => 1 
     [view_date] => 2010-11-19 22:59:35 
     [views] => 1 
     [username] => Fire G 
    ) 

[7] => Array 
    (
     [id] => 3 
     [post_id] => 3 
     [user_id] => 1 
     [view_date] => 2010-11-19 22:59:28 
     [views] => 1 
     [username] => Fire G 
    ) 

[8] => Array 
    (
     [id] => 2 
     [post_id] => 398 
     [user_id] => 1 
     [view_date] => 2010-11-18 11:37:20 
     [views] => 4 
     [username] => Fire G 
    ) 

[9] => Array 
    (
     [id] => 1 
     [post_id] => 398 
     [user_id] => 1 
     [view_date] => 2010-11-18 11:37:16 
     [views] => 4 
     [username] => Fire G 
    ) 
) 

Répondre

6

utilisation uasort, le tri défini par l'utilisateur qui vous permet de fournir votre propre fonction pour définir si un élément doit se présenter devant un autre.

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

Votre fonction de comparaison serait quelque chose comme

function cmp($a, $b) { 
    return $a['post_id'] > $b['post_id'] ? 1 : -1; 
} 
+0

+1 great! Qu'en est-il de '$ a ['post_id'] - $ b ['post_id']'? – alex

+0

Je ne sais pas ce que ça veut dire. La différence algébrique entre les ID de poste? –

+0

@Dan Grossman Désolé je veux dire si vous retournez un moins l'autre, il donnera un négatif ou positif si elles sont différentes, ou 0 si elles sont identiques. Répondre efficacement aux exigences de rappel de tri. – alex

Questions connexes