Проверка переменных сессии в массивах

Статус
В этой теме нельзя размещать новые ответы.

Bu-Bu

Любитель PHP
Проверка переменных сессии в массивах

Задача тривиальная, но чего-то перемкнуло.
В общем есть массив переменных сессии $_SESSION['values']['abc'],$_SESSION['values']['def'],$_SESSION['values']['ghi'] и т.д. Как проверить циклом наличие значения переменных сессии в соответствующих массивах $abc,$def,$ghi и вернуть значение, если массивы ассоциативные? Естественно, переменные сессии брались именно как значения из этих массивов. Заранее благодарен за подсказку.
 

Фанат

oncle terrible
Команда форума
Интересная подпись.
Интересно, кому она адресована...
 

zerkms

TDD infected
Команда форума
обход массивов: foreach
оператор ветвления: if
 

Bu-Bu

Любитель PHP
Автор оригинала: zerkms
обход массивов: foreach
оператор ветвления: if
Это и так было ясно. Просто переменных больше десятка и они не всегда идут по порядку и не всегда присваиваются. Сам вопрос в том как проверить значение вида ['xxx'] в массиве $xxx?
 

Фанат

oncle terrible
Команда форума
Я соглашусь, что форумы - особенно специализированные - подходят не всем.
 

Beavis

Banned
Bu-Bu
сначала вопросы научись задавать... то что ты спросил - по-моему бред какой-то..

"Как проверить циклом наличие" - сам отвечаешь на свой вопрос
"наличие значения переменных" - empty (если нужно не наличие значения а наличие переменной - isset)
"вернуть значение, если массивы ассоциативные" - любой массив в PHP можно назвать ассоциативным

это если отвечать по отдельности... а вместе всё вышеописанное в голове соединить не получается, слишком ты запутанно и непонятно пишешь

-~{}~ 27.01.08 15:06:

Автор оригинала: Bu-Bu
Это и так было ясно. Просто переменных больше десятка и они не всегда идут по порядку и не всегда присваиваются. Сам вопрос в том как проверить значение вида ['xxx'] в массиве $xxx?
1)проверить на что?
2)что значит "значение вида" ? 'xxx' - это ключ элемента массива а не значение вида.
3)из-за твоих вольных определений нифига не понятно что ты хочешь..

если включить режим телепата, то может тебе надо проверить, есть ли в массиве элемент с заданным ключом? или нет?
 

Фанат

oncle terrible
Команда форума
я так думаю, что ему надо просто вывести в цикле массив $_SESSION['values']
но написано это, действительно, языком чудовищным.
 

Bu-Bu

Любитель PHP
Автор оригинала: Beavis
Bu-Bu
сначала вопросы научись задавать... то что ты спросил - по-моему бред какой-то..

"Как проверить циклом наличие" - сам отвечаешь на свой вопрос
"наличие значения переменных" - empty (если нужно не наличие значения а наличие переменной - isset)
"вернуть значение, если массивы ассоциативные" - любой массив в PHP можно назвать ассоциативным

это если отвечать по отдельности... а вместе всё вышеописанное в голове соединить не получается, слишком ты запутанно и непонятно пишешь
В одном месте берутся переменные из пачки многомерных массивов $a,$b,$c,$d,$e,$f,$g,$h,$i,$k. Берутся часто примерно так - $_SESSION['values']['a'] = $a[$i], $_SESSION['values]['d'] = $d[$j] и т.д., т.е. не подряд и не обязательно все переменные из пачки массивов участвуют. Плюс каждый массив имеет подмассивы $a[0]= Array(),$b[0] = Array() и т.д.
После этого в другом месте нужно переменные вида $_SESSION['values']['массив'] проверить именно в соответствующем массиве, чтобы не перетряхивать всю пачку массивов. И желательно в цикле. Затык у меня произошел на этапе преобразования переменной ['массив'] в переменную $массив. Пых просто говорит, что массив не существует.

foreach ($_SESSION['values'] as $key => $value)
$arraykey = $key;

if (isset($arraykey[$i])) - Пых орет нет такого массива.
 

Beavis

Banned
Bu-Bu
PHP:
header('content-type: text/plain');
foreach ($_SESSION['values'] as $key => $value) {
  var_dump($key);
  var_dump($value);
  echo "\r\n---------------------------\r\n";
}
может хоть так поймешь...
 

Bu-Bu

Любитель PHP
Автор оригинала: Beavis
Bu-Bu
PHP:
header('content-type: text/plain');
foreach ($_SESSION['values'] as $key => $value) {
  var_dump($key);
  var_dump($value);
  echo "\r\n---------------------------\r\n";
}
может хоть так поймешь...
Во-первых, мне не нужен вывод того, что в сессиях - там хранятся только ключи, а мне надо их значения, т.е. в сессиях у меня лежат (0,10,30,15), а мне надо получить (0=> банан,10 => дыня,30=>арбуз,15=>яблоко), а для этого хочу сделать перебор соответствующих названию переменных сессии массивов.
 

Beavis

Banned
перебираешь ключи, берешь массив где хранятся твои фрукты и пишешь $массив_с_фруктами[$ключ]
 

Beavis

Banned
и ты так и не понял для чего я написал код выше....
у тебя процент усвоения информации близкий к нулю и сопряженный с неумением изъясняться... вобщем жесть
 

Bu-Bu

Любитель PHP
Автор оригинала: Beavis
перебираешь ключи, берешь массив где хранятся твои фрукты и пишешь $массив_с_фруктами[$ключ]
Так эти фрукты в разных массивах, на что указывает переменная сессии ['массив']. Упрощаю вопрос до совсем простого:

Как проверить соответствие переменной $_SESSION['a'] = $i, именно массиву $a, где ключу $i соответствует значение 'foo', не перебирая всех существующих массивов. Вывод нужен именно значения 'foo'
 

zerkms

TDD infected
Команда форума
Как проверить соответствие переменной $_SESSION['a'] = $i, именно массиву $a, где ключу $i соответствует значение 'foo', не перебирая всех существующих массивов. Вывод нужен именно значения 'foo'
жесть
 

Beavis

Banned
Bu-Bu
давай будем отлаживать твой вопрос как неправильный код, пока не поймем друг друга...

1) что ты подразумевешь под "соответствием переменной"
2) если ты пишешь что $i это ключ, то почему ты присваиваешь ключ целому массиву?

-~{}~ 27.01.08 16:04:

только не перепутай опять что такое массив, что такое элемент массива и его значение, что такое ключ и что такое его значение!!

-~{}~ 27.01.08 16:06:

и "$_SESSION['a'] = $i" это не переменная, а операция присваивания...

-~{}~ 27.01.08 16:10:

если так сложно изъясняться по-русски, то когда приводишь какую-то переменную, сразу пиши рядом её var_dump чтоб нам хоть было понятно
 

Bu-Bu

Любитель PHP
Автор оригинала: Beavis
Bu-Bu
давай будем отлаживать твой вопрос как неправильный код, пока не поймем друг друга...

1) что ты подразумевешь под "соответствием переменной"
2) если ты пишешь что $i это ключ, то почему ты присваиваешь ключ целому массиву?

-~{}~ 27.01.08 16:04:

только не перепутай опять что такое массив, что такое элемент массива и его значение, что такое ключ и что такое его значение!!

-~{}~ 27.01.08 16:06:

и "$_SESSION['a'] = $i" это не переменная, а операция присваивания...

-~{}~ 27.01.08 16:08:

"Вывод нужен именно значения 'foo'"
echo $i выведет тебе именно foo
Вот переменной $_SESSION['a'] и присвоено значение $i ранее. Теперь мне нужно достать из массива $a значение, соответствующее ключу $i. Чего я по вашему тут перепутал?
Массив ассоциативный $a = array('0' => 'foo','1' => 'boo');
 

Beavis

Banned
Автор оригинала: Bu-Bu
достать из массива $a значение, соответствующее ключу $i.
для доставания из массива $a значения, соответствующего ключу $i используется конструкция
$a[$i]

-~{}~ 27.01.08 16:17:

если у тебя значение $i хранится в $_SESSION['a'], тогда вместо $a[$i] пиши $a[$_SESSION['a']]
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху