Манипуляции с массивами сеансов Codeigniter - PullRequest
2 голосов
/ 12 января 2011

Продолжить из этой темы текст ссылки

Привет, ребята.Я использую 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

);

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

Ответы [ 3 ]

2 голосов
/ 12 января 2011

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

$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
)
1 голос
/ 12 января 2011

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

0 голосов
/ 12 января 2011

Похоже, у вас есть данные сеанса в форме $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'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...