2013-03-11 42 views
0

我正在CakePHP框架內工作,並且有以下多維數組,我需要按值進行排序。我正在使用usort,但無法弄清如何由[ForumPost]的孩子進行排序。用兒童的usort對多維數組排序

這裏的數組:

Array 
( 
    [0] => Array 
     (
      [ForumPost] => Array 
       (
        [id] => 174 
        [forum_id] => 81 
        [user_id] => 39 
        [title] => A test post 
    [1] => Array 
     (
      [ForumPost] => Array 
       (
        [id] => 64 
        [forum_id] => 208 
        [user_id] => 36 
        [title] => B test post 
... etc 

我的功能和呼叫是:

usort($array, array("ForumSearchesController", "cmp")); 

function cmp($a, $b) { 
    return $a['ForumPost']['title'] - $b['ForumPost']['title']; 
} 
+1

取代'美元[ 'ForumPost'] [ '標題'] - $ B [ 'ForumPost'] [ '標題']',它看起來像您剛纔需要'返回strcmp($ a ['ForumPost'] ['title'],$ b ['ForumPost'] ['title']);' – 2013-03-11 13:53:55

+0

鑑於標題是一個字符串,爲什麼你使用minus來比較? – 2013-03-11 13:54:17

+0

看看PHP的usort頁面上的例子3 http://php.net/manual/en/function.usort.php – Pitchinnate 2013-03-11 13:55:41

回答

0

你不能簡單地減去彼此標題(字符串),並期待一個有意義的結果。字符串的等效調用函數strcmp

function cmp($a, $b) { 
    return strcmp($a['ForumPost']['title'], $b['ForumPost']['title']); 
} 
+0

哈哈,這是總的感覺。不知道我在想什麼。謝謝你,朋友。你們都讓StackOverflow成爲互聯網上最棒的網站。 – JamieHoward 2013-03-11 14:07:25