Re: get key of array (key function sucks?)

From: Date: Sat, 28 Jan 2006 02:28:11 +0000
Subject: Re: get key of array (key function sucks?)
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-229388@lists.php.net to get a copy of this message
Sjef wrote: > Hallo, > I am adding a value to a session variable (an array). Then I want to place > the key of the array in another session variable to keep it for later use > (so I can return to the array to write data to it). The key function > should work there, but it seems to be a bit strange. > > Imagine: > > $array = array(); > $array[] = "Yellow"; > $array[] = "Geen"; > $array[] = "Red"; > > foreach ($array as $key=>$value) > { > print ("Key: " . $key . " has color " . $value . " | "); > print ("current key = " . key($array) . "<br/>"); > } > > If you run the loop the key value returned from key is one higher than the > key in $key, and the last key is null? > > How do I get the present key without a problem?? You've already got it in $key. I think you will find that foreach advances the internal array pointer by one each time it loops, so what you have is key($array) looking at the next array element from the one in $key and $value. Nothing wrong with key(), just a misunderstanding on your part about how foreach works :-) In simplified terms, the first time through the foreach loop, this happens: pointer at element 0 $key gets value 0 $value gets value Yellow pointer moved to element 1 Then you use key(), which gives you - guess what? Cheers -- David Robley "I'll tempt Adam tonight," she said evilly.

« previous php.general (#229388) next »