Solero: komischer Wert für key() in einer foreach-Schleife

Beitrag lesen

Hey Leute,
bin auf ein interessantes (zumindest für mich...) Problem in PHP gestossen. vielleicht wisst ihr, wieso das nicht richtig funktioniert. und zwar gehts um folgenden Code:

<?php  
$arr = array ('a', 'b', 'c', 'd', 'e');  
$file = 'b';  
  
foreach ( $arr as $x )  
{  
if ($x == $file)  
$key = key($arr);  
}  
  
echo $key  
?>

echo $key gibt mir nun den Wert 2 aus, obwohl doch das Element 'b' eindeutig den Index 1 hat, was ich auch mit print_r($arr) überprüft habe. auch für andere Werte von $file ist $key immer um 1 zu gross, ausser für $file = 'e', da ist $key = 0.

Ich bin das Problem nun mit

<?php  
foreach ($arr as $k => $b)  
if ($b == $file)	  
$key = $k;  
?>

umgangen, dennoch würde mich interessieren, wieso die erste Variante nicht richtig funktioniert.

mfG
Solero