Intereting Posts

добавить значение в массив userdata

Я думал, что это будет просто, но я не могу заставить его работать. Все, что я хочу сделать, это добавить значение в массив userdata. Если значение уже находится в массиве visible_news_items, я не хочу его заменять.

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

вставить значение в массив views_news_items

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

Вы используете $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); 

вызывается тип данных, которые вы извлекли из сеанса, и используйте его по своему усмотрению.

 $ID = 123; $data = (array)$this->session->userdata("session_name"); $data[] = $ID; $this->session->set_userdata("session_name",$data);