[UPHPU] better way to find position in an array of numeric values?

haas at xmission.com haas at xmission.com
Sat May 2 10:10:04 MDT 2009


Quoting Wade Preston Shearer <wadeshearer.lists at me.com>:

> I have an array called $things that I am iterating through. On each
> loop I need to echo out some values of the sub-array. I also need to
> echo out a "position." The position is a text string representation of
> a numeric value. I have an array of possible positions. The correct
> position is the one immediately less than the ID. So, if the ID was
> 32, then the position would be 'b'. Is there a more efficient way to
> determine and return the position than how I am doing it below?
>
>
> function position($id) {
> 	$positions = array(10 => 'a', 22 => 'b', 46 => 'c', 88 => 'd');
>
> 	foreach($position as $key => $value) {
> 		if($id < $key) {
> 			$position = $value;
> 		}
> 	}
>
> 	return $position;
> }
>
> foreach($things as $value) {
> 	echo "\n" . $value['name'] . ' is in position ' .
> position($value['id']) . '.';
> }

You can break out of the loop in position() as soon as you see a value  
for $key that is greater than $id, which should save some time.

-- Walt




More information about the UPHPU mailing list