Bug #3995: unset($array[$index]) yields incorrect results
| From: | David_Searles at candle dot com | Date: | Fri, 31 Mar 2000 14:29:06 +0000 |
| Subject: | Bug #3995: unset($array[$index]) yields incorrect results | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-17471@lists.php.net to get a copy of this message | ||
From: David_Searles@candle.com
Operating system: Windows NT 4.0 SP 6
PHP version: 3.0.15
PHP Bug Type: Misbehaving function
Bug description: unset($array[$index]) yields incorrect results
Using 'unset($array[$index])' yields incorrect results. For example, ...
$test[0] = "2"
$test[1] = "1"
$test["count"] = 2;
This simulates what is returned by several LDAP functions. If you echo this array OR call
'count' on it, all looks fine. Now ...
unset($test["count"]);
This removes the "count" entry. So far so good. If you echo this array OR call
'count' on it, it still looks fine. Now ...
sort($test);
This sorts the array but the array is now hosed. The first element appears to be a "null"
element and the second element is "1". The "2" element is either no longer
addressable in the array OR doesn't exist in the array at all.
It appears that 'unset' doesn't TRULY remove an element from an array but merely
marks it as logically deleted. Is this the way it's supposed to work? If so, how can I TRULY
delete an array element?
Thanks for a GREAT product!