Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: в сессии получить доступ к массиву в массиве

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
bannndi
Отправлено: 07 Июня, 2012 - 15:49:26
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Добрый день!

Есть такая проблема:
В $_SESSION есть массив basket с вложенными массивами товаров:
PHP:
скопировать код в буфер обмена
  1.  
  2. [basket] => Array
  3.         (
  4.             [1000001] => Array
  5.                 (
  6.                     [id] => 1000001
  7.                     [price] => price1
  8.                     ...
  9.             [1000002] => Array
  10.                 (
  11.                     [id] => 1000002
  12.                     [price] => price2
  13.                     ...
  14.  


Он заполняется данными при добавлении товара в корзину. Как мне получить доступ к ячейкам price массивов товаров? Нужно сделать некоторое изменение цены(округлить) и , и сложить только товары из $SESSION[basket][id]


Заранее спасибо..
 
 Top
etoYA
Отправлено: 07 Июня, 2012 - 15:53:29
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




PHP:
скопировать код в буфер обмена
  1. for ($i = 0; $i < sizeof($_SESSION['basket']); $i++){
  2.      $_SESSION['basket'][$i]['id'] // id
  3.      $_SESSION['basket'][$i]['price'] // price
  4. }

(Добавление)
Или лучше наверное

PHP:
скопировать код в буфер обмена
  1. foreach ($_SESSION['basket'] as $key){
  2.      $_SESSION['baskey'][$key]['id'] //id
  3.      $_SESSION['baskey'][$key]['price'] //price
  4. }


p.s не проверял

(Отредактировано автором: 07 Июня, 2012 - 16:01:58)

 
 Top
bannndi
Отправлено: 07 Июня, 2012 - 16:53:07
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Спасибо, вывести массивы мне удалось)
Теперь другая проблема- нужно добавить в каждый массив $key (в basket) новую ячейку, которая будет равна price * коэффициент.. Что-то ничего не получается..(

текущий код:
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($_SESSION['basket'] as $k=>$v):
  3.     $ids = $_SESSION['basket'][$k];
  4.     if(is_array($ids)):
  5.         foreach($ids as $k=>$v):
  6.             echo $k.' => '.$v.'<br>';
  7.         endforeach;
  8.     endif;
  9. endforeach;
  10.  
  11.  



etoYA пишет:
PHP:
скопировать код в буфер обмена
  1. foreach ($_SESSION['basket'] as $key){
  2.      $_SESSION['baskey'][$key]['id'] //id
  3.      $_SESSION['baskey'][$key]['price'] //price
  4. }


p.s не проверял

(Отредактировано автором: 07 Июня, 2012 - 16:58:50)

 
 Top
sKaa
Отправлено: 07 Июня, 2012 - 18:08:18
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


bannndi пишет:
PHP:
скопировать код в буфер обмена
  1. foreach ($_SESSION['basket'] as $key){
  2.      $_SESSION['baskey'][$key]['id'] //id
  3.      $_SESSION['baskey'][$key]['price'] //price
  4.      $_SESSION['baskey'][$key]['cost'] = $_SESSION['baskey'][$key]['price'] * COEF;
  5. }


bannndi пишет:
Теперь другая проблема

Проблема у вас в том, что вы как я понимаю редактируете что-то не имея даже базовых знаний.
(Добавление)
Имхо
 
 Top
bannndi
Отправлено: 08 Июня, 2012 - 10:28:47
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Жаль, но Ваш код не работает.

sKaa пишет:

Проблема у вас в том, что вы как я понимаю редактируете что-то не имея даже базовых знаний.
(Добавление)
Имхо


Этот код работает:
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($_SESSION['basket'] as $k=>$v):
  3.     $_SESSION['basket'][$k]['price_new'] = //newvalue;
  4. endforeach;
  5.  


Спасибо за помощь, все получилось!

(Отредактировано автором: 08 Июня, 2012 - 15:22:11)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB