добавить значение в массив пользовательских данных - PullRequest
0 голосов
/ 27 февраля 2012

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

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

            $this->session->set_userdata($data);

вставить значение в массив просматриваемых_новостей_100 *

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

Ответы [ 2 ]

4 голосов
/ 27 февраля 2012

Вы используете $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);
1 голос
/ 21 августа 2015

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

$ID = 123;
$data = (array)$this->session->userdata("session_name");
$data[] = $ID;
$this->session->set_userdata("session_name",$data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...