Foreach循环不更新值
我在页面上有几个表单。 在我的视图中呈现它们之前,我使用它们的按钮和元素动态地在PHP中创建它们。 我想动态地调整tabindexes,所以基本上,一旦我在PHP脚本的末尾准备好了所有的表单,我会执行以下操作:
public function fixTabindexes($forms) {
    $tabindex = 1;      
    $forms = count($forms) > 1 ? $forms : [$forms];
    foreach($forms as $form) {
        foreach($form['form'] as $element) {
            $element->setAttrib('tabindex', $tabindex++);
        }
        foreach($form['buttons'] as $button) {                                              
            $button['tabindex'] = $tabindex++;
        }
    }
    return $forms;
}
  元素得到完美更新,但按钮没有。  感觉好像第二个foreach  - $form['buttons']没有保存['tabindex']键和它的值。  但是,如果我在foreach循环中执行var_dump ,它显示正常。 
我究竟做错了什么?
  根据其他人的评论,我错过了& $button旁边,所以它正在制作我的数组的副本,而不是返回它。  所以加入& ,保持了参考和正确地更新我的数组,但后来另一件事我缺少的是相同的- &与$form了。 
public function fixTabindexes($forms) {
    $tabindex = 1;      
    $forms = count($forms) > 1 ? $forms : [$forms];
    foreach($forms as &$form) {
        foreach($form['form'] as $element) {
            $element->setAttrib('tabindex', $tabindex++);
        }
        foreach($form['buttons'] as &$button) {                                              
            $button['tabindex'] = $tabindex++;
        }
    }
    return $forms;
}
