Вы используете $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 автоматически назначит следующий числовой идентификатор в качестве индекса для нового элемента массива.
В вашем текущем сценарии вам придется извлечь существующий список идентификаторов из сеанса, добавить идентификатор к нему и затем вернуть его обратно в сеанс:
# 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);