【问题标题】:How to group values in an array in cakephp?如何在cakephp中对数组中的值进行分组?
【发布时间】:2012-03-24 17:32:12
【问题描述】:

我有一个数组中的团队负责人列表,以及另一个数组中对应的团队成员。
我需要将它们分组到一个数组中,以便在每个团队领导下,相应的团队成员应该列在一个下拉列表中,其中团队领导和团队成员应该是可选的。
团队领导数组

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
            )

    )

请帮帮我。

【问题讨论】:

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


    【解决方案1】:

    将您的数组作为列表获取:

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

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

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

    更新 您将需要 javascript / css 来操作选择字段以执行您的要求。您当前设置的任何标签都不会得到您正在寻找的答案。这不能用常规的 HTML / PHP 代码来完成。

    【讨论】:

    • 它只会在下拉列表中显示团队成员,对吗?但我想列出以相应团队负责人开头的团队成员。
    【解决方案2】:

    遵循 CakePHP 的约定,你不会有这个问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 2021-01-30
      相关资源
      最近更新 更多