Temat: Usuwanie danych z tablicy
Łukasz Peta:
ma ktoś może na to jakiś inny pomysł? Bardzo zależałoby mi na tym żeby pozostać przy moim sposobie...
przy sposobie, który zaproponowałeś do dodawania kolejnych elementów potrzebne by było jeszcze przesunięcie tablicy po usunięciu elementu...
Poza tym - czy ja dobrze widzę, że pojedynczy element to tak naprawdę łańcuch znakowy liczba + '|' + liczba?? To jest absolutnie złe rozwiązanie - tak się nie robi, bo to wymaga kolejnych skomplikowanych operacji jeśli np chcesz porównywać to id (do usunięcia, do dodania większej ilości danego elementu do koszyka etc...)... - za każdym razem ten string trzeba rozbijać, żeby znaleźć id.
Ponadto co, jeśli niezdefiniowane jest $_GET['ilosc']? Tez trzeba cos zrobic...
na początek zmień swój kod na taki:
<?php
if(!isset($_SESSION['tablica'])) //jezeli sesja po raz pierwszy otwarta
$_SESSION['tablica']=array();
if(!isset($_SESSION['id']))
$_SESSION['id']=0;
if(isset($_GET['i']))
{
//na wypadek niezdefiniowanego get-ilosc
$ilosc = (isset($_GET['ilosc']) && $_GET['ilosc']>0)?$_GET['ilosc']:1;
$_SESSION['tablica'][$_SESSION['id']]['id']=$_GET['i'];
$_SESSION['tablica'][$_SESSION['id']]['ilosc']=$ilosc;
$_SESSION['id']++;
}
?>
dalej najprostszym sposobem będzie przeszukiwanie liniowe - napotkasz element - usuwasz, przerywasz pętlę... (tylko tu powstanie dziura, a nie wiem jak wypisujesz zawartość tablicy)
[... tu była propozycja nieoptymalna - będę się za to smażyć w piekle ;P]
Ale podtrzymuję to, ze kod należałoby przebudować - jak już się uczyć, to uczyć się robić coś dobrze i optymalnie...
Lidia Wilczyńska edytował(a) ten post dnia 04.08.09 o godzinie 00:16