|  | Posted by Brent Baisley on 06/13/27 11:30 
The foreach statement works because you are getting the array index  ($k) to unset the array item. I think somewhere in the manual it says
 it's unsafe because some people might think you could just use unset
 ($v) to unset the array item. Which wouldn't work because $v is more
 of a temporary variable and not a reference to the array item.
 
 On Oct 27, 2005, at 6:18 PM, Richard Lynch wrote:
 
 > Somewhere in the manual (damned if I can find it now) it says (or used
 > to say) that you can or can't safely do this:
 >
 > while (list($k, $v) = each($array)){
 >   if (...) unset($array[$k]);
 > }
 >
 > I don't even remember if it's safe or not, but I swear I saw it not
 > that long ago...
 >
 > Anyway, can you do *this* safely as a DOCUMENTED FEATURE:
 >
 > foreach($array as $k => $v){
 >   if (...) unset($array[$k]);
 > }
 >
 > I'm sure I could test it and maybe find out if "it works" but is it
 > documented behaviour I can rely on?  I'm sure not finding this in the
 > manual now that I go looking for it, though I know I saw it there
 > before.
 >
 > PS
 > I'm being dragged kicking and screaming into using this new-fangled
 > 'foreach' thing instead of while/list/each, and I don't really care
 > for it so far. :-)
 >
 > --
 > Like Music?
 > http://l-i-e.com/artists.htm
 >
 > --
 > PHP General Mailing List (http://www.php.net/)
 > To unsubscribe, visit: http://www.php.net/unsub.php
 >
 >
 >
 
 --
 Brent Baisley
 Systems Architect
 Landover Associates, Inc.
 Search & Advisory Services for Advanced Technology Environments
 p: 212.759.6400/800.759.0577
  Navigation: [Reply to this message] |