Fred Furunkelstein 2012: Update eines arrays

Beitrag lesen

Moin!

Was mache ich falsch?

foreach ($fields as $field)

{
      if (......)
         $field = $field . $zusatz;
      echo $field . "<br>";
     }

print_r ($fields);

  
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:  
  
"selbsterklärend:"  
  
~~~php
<?php  
$fields[1]='Hallo';  
$fields[2]='Hallo';  
$fields['foo']='Hallo';  
$fields['bar']='Hallo';  
  
$arKeys=[link:http://de3.php.net/manual/de/function.array-keys.php@title=array_keys]($fields);  
foreach ($arKeys as $varKey) {  
     $fields[$varKey] .= ' Welt!';  
}  
print_r ($fields);  
?>

~> php test.php
Array
(
    [1] => Hallo Welt!
    [2] => Hallo Welt!
    [foo] => Hallo Welt!
    [bar] => Hallo Welt!
)

Eine Zeile kürzer:

<?php  
$fields[1]='Hallo';  
$fields[2]='Hallo';  
$fields['foo']='Hallo';  
$fields['bar']='Hallo';  
  
foreach (array_keys($fields) as $key) {  
     $fields[$key] .= ' Welt!';  
}  
print_r ($fields);  
?>