[PHP-DEV] Bug #3995: unset($array[$index]) yields incorrect results From: David_Searles <email protected>
Date: 03/31/00

From: David_Searles <email protected>
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!

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>