ADDENDUM:
This is getting weirder and weider.
I was wondering what would happen if I duplicated the array. Well the new array works fine. So I think, heck, I'll just unset, duplicate and copy back and I'll have me a nice function to really unset array members. WRONG! watch this:
TRY #1:
$test = array('one', 'two', 'three');
print_r($test);
unset($test[2]);
$test_ref = $test;
$test[] = 'four';
print_r($test);
// now it works just because I copied it. Noticed I did not have to copy it back!
So I think, well cool, I'll just unset $test_ref to clean up and I'll be set. WRONG!
TRY#2:
$test = array('one', 'two', 'three');
print_r($test);
unset($test[2]);
$test_ref = $test;
unset($test_ref);
$test[] = 'four';
print_r($test);
// On my setup, it's now back to the original problem. What does the existence of $test_ref have to do with $test? It's not a reference. Shouldn't it be an independent duplicate copy???