2016-09-05 10 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

あなたのコードでは、$ 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'])); 
    } 
} 
0

こんにちはあなたは、この行はこの

$storage = array();// initialize it as array 
$storage[$var] = $value;// assign $value in $key index of $storage 
を試してみて、あなただけの最後の key valueペア

なっている理由たびにthatsの新しいarray$storageを作成しているだけerror

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

の下に持っています

関連する問題