Как повторить имя сеанса в цикле foreach в PHP?

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

Как отображать имя переменной сеанса каждый раз, когда он зацикливается?

Это код, который у меня сейчас есть:

foreach($_SESSION as $value) {
    echo  'Current session variable is: ' . $value . '<br />';
}

person zeckdude    schedule 04.02.2010    source источник
comment
Если это просто для целей отладки, быстрее использовать print_r($_SESSION, true);   -  person Extrakun    schedule 04.02.2010
comment
Я бы предпочел второй print_r() - он не только выполняет то же самое, но и имеет гораздо более приятное форматирование (и дает указание типов).   -  person Amber    schedule 04.02.2010
comment
Я не понимаю, что вы имеете в виду. Я бы поставил print_r($_SESSION, true); внутри цикла foreach?   -  person zeckdude    schedule 04.02.2010


Ответы (4)


Этот?

foreach($_SESSION as $key => $value) {
    echo  'Current session variable ' . $key . ' is: ' . $value . '<br />';
}
person mauris    schedule 04.02.2010
comment
Это именно то, что мне нужно! Благодарю вас! - person zeckdude; 04.02.2010
comment
совершенно никаких проблем. другие ответы, вероятно, содержат более подробную информацию, и вы, возможно, захотите их прочитать. - person mauris; 04.02.2010

С помощью цикла foreach вы можете получить как имена ключей, так и соответствующие значения, используя этот синтаксис:

foreach ($your_array as $key => $value) {
    // Use $key for the name, and $value for the value
}

Итак, в вашем случае:

foreach($_SESSION as $name => $value) {
    echo  'Current session variable is: ' . $value . ' ; the name is ' . $name . '<br />';
}
person Pascal MARTIN    schedule 04.02.2010

Цикл foreach позволяет указать переменную для ключа. Просто используйте $var => $val, где $val — это переменная, содержащая индекс, а $val — это переменная, содержащая значение.

foreach($_SESSION as $key => $value) {
    echo  'Session variable ' . $key . ' is: ' . $value . '<br />';
}
person Andrew Moore    schedule 04.02.2010
comment
Спасибо за подробное объяснение! - person zeckdude; 04.02.2010

Попробуй это:

foreach($_SESSION as $k => $v) 
{
   echo 'Variable ' . $k . ' is ' . $v . '<br />' 
}
person codaddict    schedule 04.02.2010