Массив Манипуляции сеансами Codeigniter

Продолжить из этого раздела текст ссылки

Привет, народ. Я использую codeigniter и хочу хранить данные в сеансе. У меня этот массив

array(4) { [0]=> array(2) { ["DESC"]=> string(1) "A" ["SUBFUNCTION_ID"]=> string(3) "904" } [1]=> array(2) { ["DESC"]=> string(1) "B" ["SUBFUNCTION_ID"]=> string(3) "903" } [2]=> array(2) { ["DESC"]=> string(1) "C" ["SUBFUNCTION_ID"]=> string(3) "902" } [3]=> array(2) { ["DESC"]=> string(1) "D" ["SUBFUNCTION_ID"]=> string(3) "901" } } 

И это массив для хранения данных сеанса

 $data = array( 'username' => $this->input->post('username'), 'userid' => $query->USER_ID, 'role' => $query->ROLE_ID, 'is_logged_in' => true 

);

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

 $data = array( 'username' => $this->input->post('username'), 'userid' => $query->USER_ID, 'role' => $query->ROLE_ID, 'is_logged_in' => true, 'A' => 904, 'B' => 903, 'C' => 902, 'D' => 901 

);

заранее спасибо

Похоже, что у вас есть данные сеанса в виде $foo и исходных данных $data

 $foo = array ( array('DESC'=>'A', 'SUBFUNCTION_ID'=>904), array('DESC'=>'B', 'SUBFUNCTION_ID'=>903), array('DESC'=>'C', 'SUBFUNCTION_ID'=>902), array('DESC'=>'D', 'SUBFUNCTION_ID'=>901), ); $data = array( 'username' => $this->input->post('username'), 'userid' => $query->USER_ID, 'role' => $query->ROLE_ID, 'is_logged_in' => true ); 

Чтобы объединить данные из $foo в $data по вашему запросу, зациклируйте все значения в $foo а затем добавьте их в $data

 foreach($foo as $bar) { $data[$bar['DESC']] = $bar['SUBFUNCTION_ID']; } 

Получите массив и манипулируйте им.

 $user_array = $this->session->userdata('your_user_data'); foreach ($your_array as $sub_array) { $user_array[$sub_array['DESC']] = $sub_array['SUBFUNCTION_ID']; } $this->session->set_userdata('your_user_data', $user_array); 

У вас будет что-то вроде этого:

$ data = $ this-> session-> userdata ('your_user_data');

 $data = array( 'username' => $this->input->post('username'), 'userid' => $query->USER_ID, 'role' => $query->ROLE_ID, 'is_logged_in' => true, 'A' => 904, 'B' => 903, 'C' => 902, 'D' => 901 ) 

Если ключи разные, вы можете просто добавить массивы: $arr = $arr1 + $arr2;