我试图使一个动态关联数组,但事情是它只是保存最后的键值对,我怎么能存储所有的键值对?
foreach ($_POST as $var => $value) {
// Does the model have this attribute? If not raise an error
if ($model->hasAttribute($var))
$model->$var = $value;
elseif ($profile->hasAttribute($var)) {
$storage = array($var => $value);//associative array
} else {
//var_dump ($var);
$this->_sendResponse(500, sprintf('Parameter <b>%s</b> is not allowed for model <b>%s</b>', $var, $_GET['model']));
}
}
您只有以下error
:
$storage = array($var => $value);//associative array
这一行每次都创建一个新的array
$storage
,这就是为什么你只得到最后一个key
value
对。
试试这个:
$storage = array();// initialize it as array
$storage[$var] = $value;// assign $value in $key index of $storage
在您的代码中,您总是将$storage分配给一个新数组,而不是追加它。(如果我说错了请指正)。
你应该这样添加数组。
<?php
foreach ($_POST as $var => $value) {
// Does the model have this attribute? If not raise an error
if ($model->hasAttribute($var))
$model->$var = $value;
else if ($profile->hasAttribute($var)) {
if (!is_array($storage))
$storage = [];
$storage[$var] = $value; //associative array
} else {
//var_dump ($var);
$this->_sendResponse(500, sprintf('Parameter <b>%s</b> is not allowed for model <b>%s</b>', $var, $_GET['model']));
}
}