Im Array 2 Felder vertauschen
Rod
- php
0 Viennamade0 siro
Hi,
ich habe ein Array, was in etwa so aussieht:
Feld0|Feld1|Feld2|Feld3|Feld4
Nunn möchte ich bei einigen Datensätzen Feld2 und Feld3 einfach vertauschen. Aber wie mache ich das am besten?
if (($zeilenfelder[2] == "bedingung1") && ($zeilenfelder[3] != "bedingung2")) {
Felder tauschen!;
}
Grüße
Rod
Hallo!
ich habe ein Array, was in etwa so aussieht:
Feld0|Feld1|Feld2|Feld3|Feld4Nunn möchte ich bei einigen Datensätzen Feld2 und Feld3 einfach vertauschen. Aber wie mache ich das am besten?
if (($zeilenfelder[2] == "bedingung1") && ($zeilenfelder[3] != "bedingung2")) {
Felder tauschen!;
}
Also vielleicht verstehe ich Dein Problem nicht, aber
$bla=$array[assoziation1];
$array[assoziation1]=$array[assoziation2];
$array[assoziation2]=$bla;
sollte doch funktionieren?
call_user_func_arrray() und array_walk() schauen gut aus - habe ich aber noch nie verwendet.
Beste Grüße
Viennamade
Hallo.
Man könnte es auch mit Referenzen (http://de3.php.net/manual/de/language.references.php) machen.
$bla =& $array[assoziation1];
$array[assoziation1] =& $array[assoziation2];
$array[assoziation2] =& $bla;
Dabei werden nur die 'Verknüpfungen' zwischen Variablenname und Inhalt neu gelegt.
Was schneller ist, weiß ich allerdings auch nicht.
MfG _Siro.
Hi,
genauso hatte ich es schon versucht, aber ich bekomme meion Array nicht mehr zusammen :-(
Ich teile es erst auf:
$zeilenfelder = explode("|",$zeile);
Dann weise ich z.B. einen neuen Wert zu:
if ($zeilenfelder[2] == "Wert1") {
$zeilenfelder[2] = "Wert2";
}
Aber das eigendliche Array "$zeile" bleibt ja unverändert. Wie bekomme ich also das neue Element "$zeilenfelder[2]" innerhalb des arrays "$zeile" an die Stelle, wo zuvor das alte stand?
Danke und Grüße
Rod
Hallo!
Ich teile es erst auf:
$zeilenfelder = explode("|",$zeile);
if ($zeilenfelder[2] == "Wert1") {
$zeilenfelder[2] = "Wert2";
}Aber das eigendliche Array "$zeile" bleibt ja unverändert.
Du veränderst es ja auch nirgendwo.
Wie bekomme ich also das neue Element "$zeilenfelder[2]" innerhalb des arrays "$zeile" an die Stelle, wo zuvor das alte stand?
Ich denke, daß dies mit http://at.php.net/manual/de/function.implode.php funktionieren sollte.
Beste Grüße
Viennamade