Пространство имен Zend Session, получить ключ определенного массива

Я использую некоторые объекты Zend_Session_Namespace для сохранения некоторых данных, большей части этих данных или многомерных массивов. У меня такое ощущение, что я пропускаю часть логики Zend_Session_Namespace или не использую их для того, что они должны делать.

Например, я храню идентификатор компакт-диска с его треклистом в виде массива.

$session = new Zend_Session_Namespace('cd-track-list');
$session->{123} = array('First Track', 'Second Track');

После этого я хочу зациклить пространство имен сеанса и узнать идентификатор компакт-диска и его треклист.

foreach($session as $key => $value {
   // $key is 0 -> but should be 123
   // $value is array('First Track', 'Second Track');
}

Значение $ верное, но ключ $ здесь не установлен. Итак, мой вопрос, как я могу получить идентификатор компакт-диска, когда я зациклить все компакт-диски?

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

1 ответ

Решение

Он не будет работать с вашим целочисленным индексом, он приведен к "0", вот в чем проблема. Смотрите "Zend_Session_Namespace.php" (__set)

$name = (string) $name;

Ты можешь использовать:

$session = new Zend_Session_Namespace('cd-track-list');
$session->a = array('First Track', 'Second Track');

foreach($session as $key => $value {
   // $key is 0 -> but should be 123
   // $value is array('First Track', 'Second Track');
}
Другие вопросы по тегам