2016-09-05 2 views
0

Я пытаюсь создать динамический ассоциативный массив, но дело в том, что он просто сохраняет последнюю пару ключ-значение, как я могу хранить все пары ключ-значение?Как создать динамический ассоциативный массив в Yii?

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'])); 
     } 
    } 

ответ

0

В вашем коде, вы всегда назначая $ хранения в новый массив вместо добавления его. (Поправьте меня, если я ошибаюсь).

Вы должны добавить массив таким образом.

<?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'])); 
    } 
} 
0

Привет У вас есть только ниже error

$storage = array($var => $value);//associative array 

эта линия создает новый array$storage каждый раз, вот почему вы получаете только последний keyvalue пара

Попробуйте

$storage = array();// initialize it as array 
$storage[$var] = $value;// assign $value in $key index of $storage 
Смежные вопросы