Re: Removing specific array items
- From: Thomas 'PointedEars' Lahn <PointedEars@xxxxxx>
- Date: Thu, 03 May 2012 18:05:59 +0200
Scott Johnson wrote:
In a simple quote cart I track items in a session.
$_SESSION['quote'][##] = {data}
Which increments the ## for each added item.
ISTM you are looking for
$_SESSION['quote'][] = $data;
instead, which automatically increments the index of the item in
$_SESSION['quote']. On the other hand, if the real code was
$_SESSION['quote'][$index] = $items[$index];
you might want to consider simplifying the loop to one statement:
$_SESSION['quote'] = $items;
At the time when the client wants to remove an item from the cart I just
clear the {data} from $_SESSION['quote'][item_id] = '';
Consider
unset($_SESSION['quote'][$item_id]);
instead.
The issue i run into is when I want to display the cart, i just cant
step thru the array without seeing if a particular item is '',
(Please try to work on your spelling.)
which works but would like to find a more 'elegant' way.
After the above, you might want to use
if (!isset($_SESSION['quote'][$item_id])
{
/* Item with $item_id exists */
}
This approach is more precise in combination with is_null().
With all that said, is there a way to remove the item from the array^
rather then clear the items data.
That is _not_ a question.
I have looked thru the 50+ different array functions and can't seem to
find the right tool. Maybe a combination I am not seeing.
There is:
<http://php.net/unset>
<http://php.net/isset>
<http://php.net/is_null>
PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann
.
- References:
- Removing specific array items
- From: Scott Johnson
- Removing specific array items
- Prev by Date: Re: Removing specific array items
- Next by Date: Re: Dynamic form generation
- Previous by thread: Re: Removing specific array items
- Next by thread: Re: Dynamic form generation
- Index(es):