Bug #3995: unset($array[$index]) yields incorrect results

From: 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!

« previous php.dev (#17471) next »