Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all articles
Browse latest Browse all 516845

Изменить массив сессии в цикле - PHP

$
0
0
Братцы выручайте!

Есть массив сессии в которой после добавления товаров лежат данные о товаре.
У авторизованного пользователя это выглядит так:
Код:

[массив] => Array
        (
            [5] => Array (id товара)
                (
                    [количество] => 1
                    [имя] => товар
                    [картинка] => картинка
                    [бренд] => бренд
                    [скидка] => скидка
                    [старая цена] => старая цена
                    [цена] => цена со скидкой
                )

            [4] => Array  (id товара)
                (
                    [количество] => 1
                    [имя] => товар
                    [картинка] => картинка
                    [бренд] => бренд
                    [скидка] => скидка
                    [старая цена] => старая цена
                    [цена] => цена со скидкой
                )

        )

У не авторизованного так:
Код:

[массив] => Array
        (
            [5] => Array (id товара)
                (
                    [количество] => 1
                    [имя] => товар
                    [картинка] => картинка
                    [бренд] => бренд
                    [цена ] => цена
                )

            [4] => Array  (id товара)
                (
                    [количество] => 1
                    [имя] => товар
                    [картинка] => картинка
                    [бренд] => бренд
                    [цена ] => цена
                )

        )

При авторизации из базы берется скидка и и массив должен становиться как в первом варианте.
Пытался пройти в цикле:
Код:

            foreach($_SESSION['массив'] as $i => $v){
                    if(!$v['старая цена']){
                        $v['старая цена'] = $v['цена'];                       
                        $v['цена'] = ($v['цена'] - ($v['цена'] * $скидка));
                        $v['скидка'] = $скидка;
                        $_SESSION['общая сумма'] += $v['количество'] * $v['цена'];
                    }else{
                        $_SESSION['общая сумма'] += $v['количество'] * $v['цена'];
                    }
                }

Но так как скидки и старой цены в массиве нет, он не добавляется.
Пробовал изначально сделать так:
У не авторизованного так:
Код:

[массив] => Array
        (
            [5] => Array (id товара)
                (
                    [количество] => 1
                    [имя] => товар
                    [картинка] => картинка
                    [бренд] => бренд
                    [скидка] => 0
                    [старая цена] => 0
                    [цена] => цена
                )

            [4] => Array  (id товара)
                (
                    [количество] => 1
                    [имя] => товар
                    [картинка] => картинка
                    [бренд] => бренд
                    [скидка] => 0
                    [старая цена] => 0
                    [цена] => цена
                )

        )

и менял цикл:
Код:

            foreach($_SESSION['массив'] as $i => $v){
                    if($v['старая цена'] == 0){
                        $v['старая цена'] = $v['цена'];                       
                        $v['цена'] = ($v['цена'] - ($v['цена'] * $скидка));
                        $v['скидка'] = $скидка;
                        $_SESSION['общая сумма'] += $v['количество'] * $v['цена'];
                    }else{
                        $_SESSION['общая сумма'] += $v['количество'] * $v['цена'];
                    }
                }

В итоге, общая сумма получается той что нужно, но сам массив никак не меняется. скидка и старая цена остаются равными 0.

Прошу вашей помощи, что я делаю не так? Спасибо.

Viewing all articles
Browse latest Browse all 516845

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>