如何在cakephp中对数组中的值进行分组?

时间:2012-03-07 07:15:30

标签: arrays cakephp multidimensional-array for-loop foreach

我有一个数组中的teamleads列表以及另一个数组中相应的团队成员 我需要将它们分组在一个数组中,以便在每个teamleads下,相应的teammembers应该列在一个下拉列表中,其中teamleads和teammembers应该是可选择的。 Teamlead阵列

Array
(
  [1] => teamlead1
  [2] => teamlead2
)

teamlead1的团队成员数组

Array
(
  [4] => teammember1
  [5] => teammember2
)

teamlead2的团队成员数组

Array
(
 [6] => teammember3
 [7] => teammember4
)

我需要将它们列为

[TeamLead1] => Array
    (
        [0] => Array
            (
                [1] => TeamLead1
            )
        [1] => Array
            (
                [4] => teammember1
                [5] => teammember2
            )

    )

[TeamLead2] => Array
    (
        [0] => Array
            (
                [2] => TeamLead2
            )
        [1] => Array
            (
                [6] => teammember3
                [7] => teammember4
            )

    )

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

将您的数组作为列表:

$this->set('teams', $this->TeamMembers->find('list'));

然后在表格中您可以设置选项:

$this->Form->input('team_member', array('options' => $teams));

<强>更新 您将需要javascript / css来操作选择字段,以便按照您的要求进行操作。您当前设置的所有标签都不会得到您正在寻找的答案。使用常规HTML / PHP代码无法做到这一点。

答案 1 :(得分:0)

遵循CakePHP的惯例,你就不会遇到这个问题。

如果您查询TeamLead-&gt; find()和TeamLead hasAndBelongsToMany或hasMany TeamMember,则返回的数组结构将包含您需要的所有内容,并且您可以使用视图中的FormHelper方法。