Werte in mehrdimensionalem Array ändern
doni
- php
Hallo allerseits
Mein mehrdimensionales Array $albums schaut wie folgt aus:
Array (
[0] => Array ( [title] => Neu [date] => 1154529168 )
[1] => Array ( [title] => Marseillan-Plage [date] => 1154524166 )
[2] => Array ( [title] => Spörtlä im Chloschtär [date] => 1152717281 )
[3] => Array ( [title] => Objekte [date] => 1151665135 )
[4] => Array ( [title] => Lumpy Nr. 1 [date] => 1151653219 )
[5] => Array ( [title] => test 2 [date] => 1151579685 )
[6] => Array ( [title] => Natur [date] => 1151574035 )
[7] => Array ( [title] => Kanuweekend2006 [date] => 1151573957 )
)
Nun möchte ich die Datum-keys vom UNIX-timestamp zum europäischen Datum im Format 12.12.2006 konvertieren.
Das habe ich so probiert:
foreach ($albums as $key => $row){ $row['date'] = date("d.m.y", $row['date']); }
Leider funktioniert das aber nicht so wirklich, d.h. es steht immernoch der UNIX-timestamp im Array und nicht mein gewünschtes Datum.
Kann mir jemand weiterhelfen?
Vielen Dank!
Gruss doni
Liebe(r) doni,
da steckt ein Denkfehler im System!
foreach ($albums as $key => $row){ $row['date'] = date("d.m.y", $row['date']); }
Du gibst innerhalb einer Schleife die Anweisung, dass in der (Array-)Variablen $row, die in dieser Schleife erst erzeugt wird, und die nur eine Kopie von $albums[$key] ist, ein Wert geändert wird. Anschließend wunderst Du Dich, dass $albums unverändert bleibt...
Vergleiche einmal folgende Zeilen:
foreach ($albums as $key => $row) {
// $key enthält Index zu $albums,
// $row enthält eine Kopie des darin abgelegten Arrays
// $row = array('title' => ..., 'date' => ...)
$albums[$key]['date'] = ...
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix
Vergleiche einmal folgende Zeilen:
Du hast Recht, vielen Dank. Ich habe ehrlich gesagt den Code nicht 100%ig verstanden, da ich den Teil aus dem PHP-Manual habe.
So klappts aber wunderprächtig:
foreach ($albums as $key => $row){ $albums[$key]['date'] = date("d.m.y", $row['date']);
}
Vielen Dank!
Gruss
(der) doni
echo $begrüßung;
Ergänzung:
foreach ($albums as $key => $row) {
$albums[$key]['date'] = ...
Falls PHP5 zur Verfügung steht, kann man aus der Kopie $row eine Referenz machen ($key braucht es dann nicht mehr).
`foreach ($albums as &$row)`{:.language-php}
Und dann klappt es wieder mit dem
`$row['date'] = ...`{:.language-php}
echo "$verabschiedung $name";