ID: 12193
Updated by: zeev
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Closed
Bug Type: Arrays related
Operating System: windows
PHP Version: 4.0.6
New Comment:
list() = each() is not a loop. each() is a simple function, that returns a key,value
pair, and advances the internal array pointer to the next pair. It has no idea it's
being used inside a loop, and thus, nothing makes this internal pointer go back to the
beginning of the array when the loop ends.
Solutions:
- Use foreach()
or
- Call reset() on the array at the end of the loop.
Previous Comments:
------------------------------------------------------------------------
[2001-07-16 16:27:46] [EMAIL PROTECTED]
when tho loops using each are nested, the outer while loop stops after the first
iteration.
For instance, the output of the following script :
$outer=array("o1", "o2");
$inner=array("i1","i2");
while (list($o_index, $o) = each($outer))
while (list($i_index, $i) = each($inner))
echo $o, $i, "<br>";
is
o1i1
o1i2
instead of
o1i1
o1i2
o2i1
o2i2
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=12193&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]