Arraykey nachträglich vergeben?
Michael H.
- php
0 David0 Harry0 Sven Rautenberg
Hi,
Kurze Frage: Ich erhalte über ein Array der Form
array(1,2,3,4,5)
Nun will ich sowohl dem ersten als auch dem letzten Element dieses Arrays einen assoziativen Key geben. Kann ich das mittels einer PHP-Funktion oder soll ich das ganze Array in ein anderes kopieren und beim ersten und letzten Eintrag den entsprechenden Schlüssel eintragen?
Etwas Kurzes, Knappes wäre sehr angenehm.
Thx,
Michael H.
Tach Michael,
also ich habe mich eben mal kurz hingesetzt und was geschreiben... aber es ist ein wirklich quick and dirty script... also ich weiss nicht ob das performanter ist als das array zu kopieren.
$a = array(1,2,3,4,5);
/* schlüssel mit werten tauschen */
$a = array_flip($a);
/* schlüssel ändern */
$a[1] = "a";
$a[ count($a) ] = "b";
/* wieder zurück tauschen */
$a = array_flip($a);
/* kontroll ausgabe */
while(list($k,$v) = each($a))
echo 'Key: '.$k.' Var: '.$v.'<br>';
Holladiewaldfee,
Kurze Frage: Ich erhalte über ein Array der Form
array(1,2,3,4,5)Nun will ich sowohl dem ersten als auch dem letzten Element dieses Arrays einen assoziativen Key geben. Kann ich das mittels einer PHP-Funktion oder soll ich das ganze Array in ein anderes kopieren und beim ersten und letzten Eintrag den entsprechenden Schlüssel eintragen?
Warum so viel Aufwand?
$x['bla'] = $x[0];
$j = count($x)-1
$x['foo'] = $x[$j];
unset($x[0], $x[$j]);
Ciao,
Harry
Warum so viel Aufwand?
$x['bla'] = $x[0];
$j = count($x)-1
$x['foo'] = $x[$j];
unset($x[0], $x[$j]);
Auch sehr schön, aber ich denke ich würde $j = count($x)-2; benutzen, sonnst macht es nicht ganz das richtige.
David
Holladiewaldfee,
Auch sehr schön, aber ich denke ich würde $j = count($x)-2; benutzen, sonnst macht es nicht ganz das richtige.
Stimmt, das count() war falsch platziert:
$j = count($x)-1;
$x['bla'] = $x[0];
$x['foo'] = $x[$j];
unset($x[0], $x[$j]);
So ist's besser, wobei natürlich auch wie Du gesagt hast count($x)-2 an der alten Stelle funktionieren würde.
Ciao,
Harry
Moin!
Kurze Frage: Ich erhalte über ein Array der Form
array(1,2,3,4,5)
Direkt _so_?
Dann würde ich nämlich
array('eins'=>1,2,3,4,'fuenf'=>5)
draus machen wollen. Ergibt im Resultat (mit print_r):
Array
(
[eins] => 1
[0] => 2
[1] => 3
[2] => 4
[fuenf] => 5
)
Die Reihenfolge in PHP-Arrays ist ja bekanntlich definiert, du kriegst also (z.B. mit foreach) immer dieselbe.
Etwas Kurzes, Knappes wäre sehr angenehm.
Ich finde das sehr kurz und knapp. Oder? Die mittleren Indices, die nicht mehr so ganz passen, kann man programmtechnisch anpassen.
- Sven Rautenberg