【问题标题】:Adding options into array CakePHP将选项添加到数组 CakePHP
【发布时间】:2014-05-09 15:11:34
【问题描述】:

我还有一个问题。我必须表:1 - 与用户 2 - 与组。表与组的 id 相连 - 表 1 中的 groupid 与表 2 中的组 id 相连。

我想使用此代码创建选项列表:

echo $this->Form->input('Priority', array(
'label' => 'Group', 
'options' => $groups_array
)); 

现在 $group_array 应该是这样的

like array('1' => 'Admin', '2' => 'User');

我尝试通过此代码推送组 ID 和组名称,但它不能正常工作(它添加 ID 降低 1 的组 - 我假设 ID 不是组 ID 而是名称 ID在数组 $group_array 中的位置。

$groups_array = array();

foreach($groups as $group):

echo $group['Group']['ID']; echo $group['Group']['Name'];

array_push($groups_array, $group['Group']['ID']=$group['Group']['Name']);

endforeach;

我该如何解决这个问题?

【问题讨论】:

    标签: php arrays cakephp


    【解决方案1】:

    不要使用array_push(),因为您打算直接从$group['Group']['ID'] 设置数组索引,所以在赋值中使用该值作为$groups_array 的索引:

    $groups_array = array();
    foreach ($groups as $group) {
      // assign a new key $group['Group']['ID'] directly
      $groups_array[$group['Group']['ID']] = $group['Group']['Name'];
    }
    

    出了什么问题:

    您描述的“减少一个”问题是一种巧合,即有 ID 为 1, 2 的用户附加到数组。第一个附加在索引0,第二个附加在1。如果数组开始时非空,则用户将被附加到它的末尾。

    什么时候做的

    array_push($groups_array, $group['Group']['ID']=$group['Group']['Name']);
    

    ...PHP 设法将Name 键分配给现有的ID 键,用名称覆盖ID,然后返回该值到@ 的第二个参数987654332@。所以 PHP 最终看到的是

    array_push($groups_array, 'Admin');
    array_push($groups_array, 'User');
    

    【讨论】:

    • 你太棒了 :o 谢谢你解决了我的问题 :) 祝你有美好的一天!
    • 没问题,很乐意提供帮助。
    猜你喜欢
    • 2015-04-28
    • 2018-04-18
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多