2010-07-31 53 views
4

所以我想通過「fk_page_id」升序排列多維數組。有沒有人有任何指針。我認爲usort()是我必須看的地方,但它似乎不能找到任何具有特定數組結構的人。幫助排序這個數組

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 
     ) 

) 

回答

0

如果你使用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

有沒有辦法來動態地做到這一點..這確實像sort_array($數組$鍵,$函數方向);這對我所需要的工作,謝謝! – Roeland 2010-07-31 03:14:08