【问题标题】:Cakephp Set::sort()Cakephp 设置::sort()
【发布时间】:2012-04-23 14:20:00
【问题描述】:

我使用的是 cakephp 1.3。我试图使用 Set::sort() 函数对数组进行排序,但不工作..关于如何做到这一点的任何想法?下面是我使用的数组。

Array (
    [0] => Array
        (
            [Group] => Array
                (
                    [name] => Team A
                )

            [Members] => Array
                (
                    [0] => Array
                        (
                            [name] => George
                            [Code] => Array
                                (
                                    [name] => C
                                )

                        )

                    [1] => Array
                        (
                            [name] => Hall
                            [Code] => Array
                                (
                                    [name] => A
                                )

                        )

                    [2] => Array
                        (
                            [name] => Mike
                            [Code] => Array
                                (
                                    [name] => B
                                )

                        )

                )

        )

我使用这个对数组进行排序:

$data = Set::sort($data, '{n}.Members.{n}.Code.name', 'asc');

我期待这样的输出:

Array
(
    [0] => Array
        (
            [Group] => Array
                (
                    [name] => Team A
                )

            [Members] => Array
                (
                    [0] => Array
                        (
                            [name] => Hall
                            [Code] => Array
                                (
                                    [name] => A
                                )

                        )


                    [1] => Array
                        (
                            [name] => Mike
                            [Code] => Array
                                (
                                    [name] => B
                                )

                        )

                    [2] => Array
                        (
                            [name] => George
                            [Code] => Array
                                (
                                    [name] => C
                                )

                        )


                )

        )

排序不生效。我该怎么做?有什么想法吗?

【问题讨论】:

    标签: php cakephp cakephp-1.3


    【解决方案1】:

    仅使用 Set::sort() 是不可行的。你可以这样:

        $result =  array();
        foreach($a as $arr) {
            $res = Set::sort($arr['Member'], '{n}.Code.name', 'asc');
            $result[] = array(
                        'Group' => $arr['Group'],
                        'Member' => $res
                    );            
        }
        pr($result);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 2012-04-29
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多