[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сложение массива
kuzroman
Есть такая конструкция:

       if (array_search( $_POST['i'] , $_SESSION['korzina'] ) === false)
{ $_SESSION['korzina'][] = $_POST['i'] ; }
else { $_SESSION['korzina'][$idTovar][] = 4 ; }


здесь, идет проверка:

если в массиве $_SESSION['korzina']
нет $_POST['i']
то мы его добавляем .
иначе делаем подмассив для повторяющегося $_POST['i']

Дело в том, что при каждом прохождении этого скрипта (например если у нас 3 раза одинаковый $_POST['i'] ) создается подмассив с 3мя значениями

Выглядит это так:
print_r( $_SESSION['korzina'] ) ;


Цитата
Array ( [0] => 31727 [1] => 31943 [2] => 11243 [11243] => Array ( [0] => 4 [1] => 4 [2] => 4 ) )


А я хотел бы чтобы выглядело так:
Цитата
Array ( [0] => 31727 [1] => 31943 [2] => 11243 [3])


Возможно это или нет?
Что следует изменить для этого?



Спустя 4 минуты, 16 секунд (22.12.2010 - 18:30) Invis1ble написал(а):
kuzroman
возможно все. Вобще предлагаю тебе изучить ф-ции для работы с массивами, иначе будешь все время сюда бегать по первому же вопросу

Спустя 15 часов, 5 минут, 23 секунды (23.12.2010 - 09:36) linker написал(а):
Вот это для чего
else  { $_SESSION['korzina'][$idTovar][]  = 4 ; } 

Спустя 52 минуты, 31 секунда (23.12.2010 - 10:28) kuzroman написал(а):
Цитата (linker @ 23.12.2010 - 06:36)
Вот это для чего <pre class="sh_sourceCode" rel="php"><span class="sh_control">else</span>  <span class="sh_cbracket">{</span> <span class="sh_variable">$_SESSION</span><span class="sh_symbol">[</span><span class="sh_string">'korzina'</span><span class="sh_symbol">][</span><span class="sh_variable">$idTovar</span><span class="sh_symbol">][]  =</span> <span class="sh_number">4</span> <span class="sh_symbol">;</span> <span class="sh_cbracket">}</span> </pre>

В общем, это я так проверял как работать с двойным массивом.
linker подскажи как бы сделать else правильно?

Нужно чтобы если такой id уже есть в массиве, делать подмассив с его колличеством, начиная с 2 и увеличивающемся на 1 при каждом прохождении скрипта.

в моем примере: $idTovar = $_POST['i'] ;

Зачем я это делаю? Пытаюсь сделать корзину, с обновлением через аякс, без перезагрузки. На аяксе сделал, но вот как правильно заносить товар в сессию, еще думаю.
Мне сдесь и посоветовали двумерный массив использовать, что то вида :
$_SESSION['korzina'][$idTovar][1] в первом значение id во втором колличество товара.
Если можно как то иначе это реализовать и правильнее, то подскажите пожалуйста как?

Спустя 18 минут, 41 секунда (23.12.2010 - 10:47) linker написал(а):
if (array_key_exist($_POST['i'], $_SESSION['korzina']) === false)
$_SESSION['korzina'][$_POST['i']] = 1;
else
$_SESSION['korzina'][$_POST['i']] ++;

Спустя 22 минуты, 39 секунд (23.12.2010 - 11:09) kuzroman написал(а):
Цитата (linker @ 23.12.2010 - 07:47)
if (array_key_exist($_POST['i'], $_SESSION['korzina']) === false)
    $_SESSION['korzina'][$_POST['i']] = 1;
else 
    $_SESSION['korzina'][$_POST['i']] ++;

linker Спасибо огромное! Все работает.



_____________
kuzroman@list.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.