2012-02-27 14 views
0

これは簡単だと思いましたが、うまくいかないようです。私がしたいのは、userdata配列に値を追加することだけです。値が既にviewed_news_items配列にある場合、私はそれを置き換えたくありません。 viewed_news_items配列ユーザーデータ配列に値を追加

 $a = array($desk_id => $desk_id); 
     $this->session->set_userdata('viewed_news_items', $a); 

答えて

4

   $data = array(
       'username' => $this->input->post('username'), 
       'is_logged_in' => true, 
       'viewed_news_items' => array() 
      ); 

      $this->session->set_userdata($data); 

挿入値あなたはすでに$desk_id値を持っていない限り、あなたがすることはできませんつまり、キーと値の両方として$desk_idを使用していますそれを配列で調べる。これに代えて

$a = array($desk_id => $desk_id); 

あなたはおそらくこれをやってみたかったが:

ある
$a = array('desk_id' => $desk_id); 

文字列に対応する値$desk_idをあるキーとして'desk_id'を使用しています。


「desk_id」がちょうど自動数が非常にコードが別の値を実行するたびに、代わりに「desk_id」を置き換えるので添加されるようにする方法はありますか?

array_push($array, $value)または$array[] = $valueでアレイの最後にアイテムをプッシュできます。 PHPは新しい配列要素のインデックスとして自動的に次の数値IDを割り当てます。

# pull the existing IDs out of the session 
$viewed_news_items = $this->session->userdata('viewed_news_items'); 

# on first load, the array may not be initialized 
if (!is_array($viewed_news_items)) 
    $viewed_news_items = array(); 

# append $desk_id to the list of viewed items 
$viewed_news_items[] = $desk_id; 

# put the new list back into the session 
$this->session->set_userdata('viewed_news_items', $viewed_news_items); 
+0

'desk_id'を自動番号として使用する方法はありますか?コードが実行されるたびに、 'desk_id'を置き換える代わりに別の値が追加されますか? – Malcr001

+0

@ user971824私の更新を参照してください。さらなる質問がある場合は、この質問のトピックからさらに離れるのではなく、新しい質問をする必要があります。 – meagar

+0

ありがとうございました – Malcr001

1

タイプを起動します。あなたの現在のシナリオでは

、あなたは、セッションのうち、IDの既存のリストを引き出し、それにIDを追加して、セッションに戻ってそれを置く必要があるでしょうセッション から取得したデータを必要に応じて使用してください。

関連する問題