PHP 4.0 Bug #9794: array_keys resets the array pointer and can not be used when looping
| From: | danbeck at dealnews dot com | Date: | Fri, 16 Mar 2001 17:13:24 +0000 |
| Subject: | PHP 4.0 Bug #9794: array_keys resets the array pointer and can not be used when looping | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-49085@lists.php.net to get a copy of this message | ||
From: danbeck@dealnews.com
Operating system: linux 2.2.16
PHP version: 4.0.4pl1
PHP Bug Type: Scripting Engine problem
Bug description: array_keys resets the array pointer and can not be used when looping
The following code is broken:
$arr = array("a", "b", "c");
foreach ($arr as $a) {
echo "$a<BR>\n";
echo max(array_keys($arr));
}
It stops after the first array element because array_keys resets the array pointer. (Or at least
it's moved to the end...)
This is sort of a (repectful) complaint that I have about PHP and they way it's been written.
Arrays are systematically prostituted by the array functions because each one of them sees fit to
reset the array pointer instead of just working off of a copy, or at the very least, returning the
array pointer to it's previous state.
Is there some reason that the array pointer can't be returned to it's previous state after
the array functions are finished with it?
--
Edit Bug report at: http://bugs.php.net/?id=9794&edit=1