Bug #13741 Updated: Cannot walk the same associative array twice in the same script

From: Date: Fri, 19 Oct 2001 10:35:16 +0000
Subject: Bug #13741 Updated: Cannot walk the same associative array twice in the same script
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-68327@lists.php.net to get a copy of this message
ID: 13741 Updated by: hholzgra Reported By: milo@cyberlifelabs.com Old Status: Open Status: Bogus Bug Type: Arrays related Operating System: FreeBSD 4.2-RELEASE PHP Version: 4.0.6 New Comment: see http://php.net/reset Previous Comments: ------------------------------------------------------------------------ [2001-10-19 06:19:43] milo@cyberlifelabs.com I have a simple associative array of scalar name/value pairs -- specifically, the 50 US states and their abbreviations. The array is sorted using asort(). Two places in my script, I walk the array using the list/each syntax: while(list($abbr,$name) = each($STATES_HASH)) { ... } The first time, everything works as it should. All subsequent times however (within the same script) the array acts as though it's blank. If I query the size using sizeof(), it reports the correct value. If I try to extract values from the array, it works fine. If I make a copy of the array to a new variable, the copy works properly (the first time). It seems like there's a bug in the each() function. Looks almost as if every associative array has a pointer to the current element that's not getting reset when each() is done with it. My configure line is as follows:  './configure' '--prefix=/usr/local/php-4.0.6' '--with-apache=../apache_1.3.19' '--with-pgsql=/usr/local/pgsql' '--enable-track-vars' '--with-config-file-path=/etc' '--with-jpeg-dir=/usr/local' '--with-tiff-dir=/usr/local' '--with-png-dir=/usr/local' '--with-zlib-dir=/usr/local' '--with-pdflib=/usr/local' ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=13741&edit=1

« previous php.dev (#68327) next »