> -----Original Message----- > From: John W. Holmes [mailto:[EMAIL PROTECTED] > Sent: 29 July 2003 23:05 > > Curt Zirzow wrote: > > Ok... I'm getting the red pen out now :) > [snip] > > the each() function returns a one element array that the current > > (internal) array pointer is pointing to and will return false if at > > the end of the array. > > It actually returns a four element array (as per the manual). > > > the list() function (not really a function) takes an array on the > > right side of the = operator and assigns each variable its value in > > order returned from the array. > > Right > > > so with the example array(0 => 'one', 1 => 'two'), the > initial internal > > pointer is looking at the first item so when the while statement > > evaluates the the statement the each() function returns: > > 0 => 'one' > > The four element array will be > 1 => 'one' > value => 'one' > 0 => 0 > key => 0
OK, some more red pen coming along.... The four-element array would actually be: 0=>0 1=>'one' 'key'=>0 'value'=>'one' in that order. So... > > > This array gets returned to the list statement > > list($k, $v) the list takes the first 2 elements (0=>0, 1=>'one') and assigns their values to $k and $v respectively, giving $k==0, $v=='one' -- the remaining 2 elements are dropped because there's nothing to assign them to. If you cared to put 4 variables in the list() structure, thus: list($k, $v, $key, $value) = each($a); you would, in this case, now have $k==0, $v=='one', $key==0, $value=='one'. Cheers! Mike --------------------------------------------------------------------- Mike Ford, Electronic Information Services Adviser, Learning Support Services, Learning & Information Services, JG125, James Graham Building, Leeds Metropolitan University, Beckett Park, LEEDS, LS6 3QS, United Kingdom Email: [EMAIL PROTECTED] Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php