Autor Zpráva
CZOggy
Profil
Zdravim, mam session kosik, kam ukladam polozky v eshopu, id je produkt, potrebuji ho vyhledat v poli a session smazat, diky moc

  $id = "5648431";
  foreach ($_SESSION['kosik'] as $index => $hodnota) {
       if (in_array($index, $id)) {
             unset($_SESSION['kosik'][$index]);
        }
  }
joe
Profil
Nejspíš trochu jinak
$id = "5648431";
  foreach ($_SESSION['kosik'] as $index => $hodnota) {
       if ($id === $index) {
             unset($_SESSION['kosik'][$index]);
             break; // mozna ne, zalezi co mas v tom poli 'kosik'
        }
  }
Radek9
Profil
CZOggy:
Proč používáš funkci in_array()? A ten cyklus je taky zbytečný. Jednoduše pomocí isset() ověř, zda prvek existuje, a pokud ano, tak ho smaž.

Edit:
joe:
To procházení pole je vážně zbytečnost.
CZOggy
Profil
Radku jak tedy?? prosim prosim :-) ja v tom mam hroznej hokej v tech polich, pole v poli atd..proste netusim
CZOggy
Profil
takto vytvarim ten session

$_SESSION['kosik'][] = array(
          "pocet" => $pocet,
          "vyrobce" => $vyrobce,              
          "id" => $unique,
);
joe
Profil
Radek9:
Jo máš pravdu, viděl jsem cyklus, nepřemýšlel jsem proč tam je.

if isset($_SESSION['kosik'][$id]) unset($_SESSION['kosik'][$id])


Tak pokud to máš tak, jak uvádíš v #5, pak ten cyklus musíš mít, ale nebude ani v proměnné
$index
v #2. Základy PHP umíš, že se pouštíš do něčeho takového? :)

EDIT2:

Tzn. ukládej to takhle
$_SESSION['kosik'][$unique] = array(...);
CZOggy
Profil
hm nefunguje, ja mel za to ze to musim cele projit, ptz to id ukladam primo do toho pole
CZOggy
Profil
jakou to ma vyhodu? je to rychlejsi, ze se zbavim toho prochazeni??
CZOggy
Profil
dobry uz jsem na to prisel, i tak dik
Radek9
Profil
CZOggy:
je to rychlejsi, ze se zbavim toho prochazeni??
Pokud bude v košíku hodně položek, tak ano.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: