Tach!
Du änderst nicht den Array fields sondern nur die Variable field.
Du musst die Schlüssel des Arrays ermitteln und dann die Elemente damit adressieren:
Ja. Nein, müssen muss er das nicht. Eine Lösung stand ja schon da: Referenzieren.
Eine Zeile kürzer:
foreach (array_keys($fields) as $key) {
Selbst wenn man das über die Keys machen will, ist das zu umständlich. Es gibt
foreach ($array as $key => $value)
da wird der Key gleich mitgeliefert.
dedlfix.