2010-07-31 3 views
4

Donc, je cherche à trier le tableau multidimensionnel ci-dessous par "fk_page_id" croissant. Est-ce que quelqu'un a des pointeurs. Je pense que usort() est où je dois regarder mais il semble que je ne peux pas trouver quelqu'un avec ma structure de tableau spécifique.aider à trier ce tableau

Array 
    (

    [0] => Array 

     (
      [title] => subpage of subpage! 
      [id] => 5 
      [long_title] => 
      [fk_page_id] => 4         
     ) 

    [1] => Array 
     (
      [title] => about us subpage 
      [id] => 4 
      [long_title] => 
      [fk_page_id] => 2 
     ) 

    [2] => Array 
     (
      [title] => about us 
      [id] => 2 
      [long_title] => 
      [fk_page_id] => 1 
     ) 

) 

Répondre

0

si vous utilisez PHP 5.3+:

define(ASC,1); 
define(DESC,-1); 

function colsort($array,$col,$order=ASC) { 
    usort(
     $array, 
     function($a,$b) use($col,$order) { 
      return strcmp($a[$col],$b[$col])*$order; 
     } 
    ); 
    return $array; 
} 

colsort($x,'fk_page_id'); 
5
function cmp($a, $b) { 
    if($a['fk_page_id'] == $b['fk_page_id']) { 
     return 0; 
    } else { 
     return $a['fk_page_id'] < $b['fk_page_id'] ? -1 : 1; 
    } 
} 

usort($yourarray, 'cmp'); 
+0

est-il un moyen de le faire dynamiquement .. une fonction qui fait quelque chose comme sort_array (tableau de $, $ key, $ direction); Cela fonctionne pour ce dont j'ai besoin, merci! – Roeland