Обновление массива сеансов в кодеригенере

Я должен выполнять следующие задачи.

1) Возьмите массив и сохраните его в виде. В начале это пустая ошибка, и я делаю это

$id_array=array(); $this->session->set_userdata('PID', $id_array); 

2) После этого я беру некоторое значение от пользователя, а затем перехожу к контроллеру. Возьмите массив из session.which был изначально пуст. Я вставляю это значение пользователя в массив, а затем снова вставляю этот массив в сеанс. я делаю это так …

  $username['name']=$this->session->userdata['PID']; array_push($username,$PID);//this $PID is variable which im getting from user $this->session->set_userdata('PID', $username); 

Таким образом, пользователь повторяет этот процесс два и три раза. SO, что означает, что 3 значения были вставлены в сеанс в разные индексы. Но когда, наконец, я беру данные из сеанса и печатаю его. Эти значения есть, но индекс тот же … Но согласно моему индексу reuqirement, он должен отличаться. я печатаю это так

  $username['name']= $this->session->userdata('PID'); print_r($username); 

Я ввел 6 за три времени. Должно появляться три раза по индексу 0 1 2, но 6 появляются 3 раза, но по тому же индексу.

 Array ( [name] => Array ( [name] => Array ( [name] => Array ( [name] => Array ( [name] => Array ( ) [0] => 6 ) [0] => 6 ) [0] => 6 ) [0] => 6 ) ) 

Я не знаю, в чем проблема.