使用usort对多维数组进行排序

时间:2013-03-11 13:50:54

标签: php arrays cakephp multidimensional-array usort

我在CakePHP框架内工作,并且具有以下多维数组,我需要按值排序。我正在使用usort,但无法弄清楚如何按[ForumPost]的孩子排序。

这是数组:

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 个答案:

答案 0 :(得分:0)

您不能简单地相互减去标题(字符串)并期望获得有意义的结果。字符串的等价物是调用函数strcmp

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