Cakephp 如何对此数组进行分组
我有以下数组,我想将同一公司的所有用户分组在一起。目前,每个用户都会显示一个公司id,有时一个公司下会有2个或更多用户。所以我有点想还原它,并显示公司下的用户,而不是公司下的用户。我是怎么做到的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]
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'));