Cakephp 如何对此数组进行分组

Cakephp 如何对此数组进行分组,cakephp,cakephp-2.0,cakephp-2.1,Cakephp,Cakephp 2.0,Cakephp 2.1,我有以下数组,我想将同一公司的所有用户分组在一起。目前,每个用户都会显示一个公司id,有时一个公司下会有2个或更多用户。所以我有点想还原它,并显示公司下的用户,而不是公司下的用户。我是怎么做到的 Array ( [0] => Array ( [User] => Array ( [id] => 1 [company_id]

我有以下数组,我想将同一公司的所有用户分组在一起。目前,每个用户都会显示一个公司id,有时一个公司下会有2个或更多用户。所以我有点想还原它,并显示公司下的用户,而不是公司下的用户。我是怎么做到的

Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 1
                    [company_id] => 20
                    [type] => 
                )


        )

    [1] => Array
        (
            [User] => Array
                (
                    [id] => 6
                    [company_id] => 21
                    [type] => 
                )


        )

    [2] => Array
        (
            [User] => Array
                (
                    [id] => 7
                    [company_id] => 22
                    [type] => 
                )


        )

    [3] => Array
        (
            [User] => Array
                (
                    [id] => 14
                    [company_id] => 21
                    [type] => 
                )


        )

    [4] => Array
        (
            [User] => Array
                (
                    [id] => 15
                    [company_id] => 22
                    [type] => 
                )



        )

    [5] => Array
        (
            [User] => Array
                (
                    [id] => 16
                    [company_id] => 21
                    [type] => 
                )


                )

        )

)

使用递归或ContainableBehavior对公司模型进行查找。

从示例中,我假设您的关系如下:

“用户属于公司”和“公司拥有多个用户”

@tigrang是对的,如果您查找公司,您将按公司对用户进行分组:

$this->Company->find('all', array('conditions' => array('id' => $companyId)));
如果您的公司模型有许多其他关系,并且您只需要用户,那么您可以使用ContaineableBehavior。首先将其添加到公司模型中:

public $actsAs = array('Containable);
然后在find()调用中:

“contain”键接受模型名称数组或单个模型的字符串。它将动态地调整模型绑定,只留下公司和用户模型的数据(如果在上面的示例中使用)

还有一点我错过了。您还可以在查找用户模型时使用“组”键:

$this->User->find('all', array('group' => 'company_id'));

尝试这两种方法,看看你能想出什么。

虽然你的答案是正确的,但似乎并没有完全回答问题,因为没有确切的例子。@Borislav Sabev我想它回答了这个问题:“我是如何做到的。”它问了哪里的例子?奥托吕科斯所说的就是你将如何去做。
$this->User->find('all', array('group' => 'company_id'));