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]

Reply via email to