I find this problem to be an absolute pain.
The only workaround that I did is to put the session array into a local array and then loop through the local array until the element that i was searching for popped up. Then i would set this to be blank.
Next I would declare a temp array and loop through the original local array, setting values of the temp array = to the local one UNLESS the current element was blank. i.e. copy data from the first array to the second array but only if first array data was not = "".
Having gone round the swings and roundabouts, I now store the temp array (minus the empty elements) back into the session by overwriting the data in the session array with the data in the temp array.
WOW, try saying all that in one breath. If you need a code example (which will probably be less confusing) let me know.
Cheers,
leon.