为什么PHP中的可变引用内部的foreach效果不同



在" foreach"循环内变量引用时遇到一些问题。

这是我的CakePHP代码片段:http://pastebin.com/s7qtyaha

第一代码分配了相同数量的内部" foreach"循环迭代的双分配。

但是第二代码可以完成一切。有人可以澄清一下。提前致谢。:)

,因为使用array()

已重置$ values
<?php
foreach($fields as &$field){
        $fieldValues = $this->controller->DomainFormFieldValue->find('all', array('conditions' => array('domain_form_field_id' => $field['DomainFormField']['id'])));
        foreach($fieldValues as $fieldValue){
                $field['DomainFormFieldValue'][] = $fieldValue['DomainFormFieldValue'];
        }
}
unset($field);
?>
2nd code:
<?php
foreach($fields as &$field){
        $fieldValues = $this->controller->DomainFormFieldValue->find('all', array('conditions' => array('domain_form_field_id' => $field['DomainFormField']['id'])));
        $values = array(); /* Array has been resetted */ 
        foreach($fieldValues as $fieldValue){
                $values[] = $fieldValue['DomainFormFieldValue'];
        }
        $field['DomainFormFieldValue'] = $values;
}
unset($field);
?>

最新更新