• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

php: array-werte erseten

  • Ersteller Ersteller the_sacrificer
  • Erstellt am Erstellt am
T

the_sacrificer

Gast
Hallo zusammen,

ich habe einen array, zB
Code:
$ar1 = array("bla", "blubber", "fasel", "rabarber")
und möchte die Werte ersetzen, möglichst im array (ich hab schon mal was mit str_replace() versucht, aber da wurden mir schlussendlich Sachen mit ersetzt, die nur zufällig die Ziffern-/Zeichenkombinationen beinhalteten).
zB soll dann für "bla" => "alb", für "blubber" => "rebbulb", für "fasel" => "lesaf",... eingesetzt werden (nein, ich suche nicht nach einer Fkt, die mir die Zeichenreihenfolge umkehrt :ugly: , mir ist nur nichts besseres eingefallen), so dass dann mein neuer array so aussieht:
Code:
$ar2 = array("alb", "rebbulb", ...)

Leider habe ich bisher nichts mir verständliches auf diversen ergoogelten Seiten gefunden.

danke schonmal für Tipps
 
Wie wärs mit
Code:
$ar1[0] = "bbulb";
?

(Waren doch eckige Klammern, oder? Hab schon lange nichts mehr mit PHP gemacht. :S )
 
the_sacrificer am 09.01.2007 11:17 schrieb:
Hallo zusammen,

ich habe einen array, zB
Code:
$ar1 = array("bla", "blubber", "fasel", "rabarber")
und möchte die Werte ersetzen, möglichst im array (ich hab schon mal was mit str_replace() versucht, aber da wurden mir schlussendlich Sachen mit ersetzt, die nur zufällig die Ziffern-/Zeichenkombinationen beinhalteten).
zB soll dann für "bla" => "alb", für "blubber" => "rebbulb", für "fasel" => "lesaf",... eingesetzt werden (nein, ich suche nicht nach einer Fkt, die mir die Zeichenreihenfolge umkehrt :ugly: , mir ist nur nichts besseres eingefallen), so dass dann mein neuer array so aussieht:
Code:
$ar2 = array("alb", "rebbulb", ...)

Leider habe ich bisher nichts mir verständliches auf diversen ergoogelten Seiten gefunden.

danke schonmal für Tipps

Code:
foreach($ar1 as $key => $value) {
$ar1[$key] = str_replace("bla", "alb", $value);
$ar1[$key] = str_replace("blubber", "rebbulb", $value);
}

tuts das nich, ich versteh dein problem grad nich^^
 
klausbyte am 09.01.2007 12:57 schrieb:
Code:
foreach($ar1 as $key => $value) {
$ar1[$key] = str_replace("bla", "alb", $value);
$ar1[$key] = str_replace("blubber", "rebbulb", $value);
}

tuts das nich, ich versteh dein problem grad nich^^

da wird nur der letzte Wert im array geändert, alle vorherigen bleiben unberührt.
 
skicu am 09.01.2007 11:42 schrieb:
Wie wärs mit
Code:
$ar1[0] = "bbulb";
?

(Waren doch eckige Klammern, oder? Hab schon lange nichts mehr mit PHP gemacht. :S )

es sind eckige Klammern :-D

Aber ich möchte nicht jeden Wert von Hand ändern, der Sinn meines Skriptes soll sein, dass mir eben dies abgenommen wird.
Zudem erweitert sich der zu ändernde array des öfteren um Einträge und da möchte ich eben diese ersetzt haben.
 
the_sacrificer am 09.01.2007 13:18 schrieb:
da wird nur der letzte Wert im array geändert, alle vorherigen bleiben unberührt.
Ich versteh dich auch nicht... erklär doch mal deine Problemstellung - einfach Werte in einem Array auszutauschen ist ja jetzt nicht so sinnvoll...
 
the_sacrificer am 09.01.2007 13:18 schrieb:
klausbyte am 09.01.2007 12:57 schrieb:
Code:
foreach($ar1 as $key => $value) {
$ar1[$key] = str_replace("bla", "alb", $value);
$ar1[$key] = str_replace("blubber", "rebbulb", $value);
}

tuts das nich, ich versteh dein problem grad nich^^

da wird nur der letzte Wert im array geändert, alle vorherigen bleiben unberührt.
eigentlich nicht, falls du das script verstanden hast^^
die foreach schleife geht jeden array wert durch
 
klausbyte am 09.01.2007 20:53 schrieb:
the_sacrificer am 09.01.2007 13:18 schrieb:
klausbyte am 09.01.2007 12:57 schrieb:
Code:
foreach($ar1 as $key => $value) {
$ar1[$key] = str_replace("bla", "alb", $value);
$ar1[$key] = str_replace("blubber", "rebbulb", $value);
}

tuts das nich, ich versteh dein problem grad nich^^

da wird nur der letzte Wert im array geändert, alle vorherigen bleiben unberührt.
eigentlich nicht, falls du das script verstanden hast^^
die foreach schleife geht jeden array wert durch
ich kenne foreach, aber wenn ich mit print_r($ar1); die Sache ausgebe, dann ist nur der letzte Wert geändert.
 
<?

// Gibt aus: Ich mag Hunde, Katzen und Mäuse.
$satz = "Ich mag Vögel, Delfine und Hasen.";
$alt = array("Vögel", "Delfine", "Hasen");
$neu = array("Hunde", "Katzen", "Mäuse");

$satz_neu = str_replace($alt, $neu, $satz);

echo $satz_neu;

?>

Also das geht 100%tig. Aber das ist schlussendlich nichts anderes, wie zuvor schon gepostet. :haeh: :confused:
 
the_sacrificer am 10.01.2007 21:53 schrieb:
klausbyte am 09.01.2007 20:53 schrieb:
the_sacrificer am 09.01.2007 13:18 schrieb:
klausbyte am 09.01.2007 12:57 schrieb:
Code:
foreach($ar1 as $key => $value) {
$ar1[$key] = str_replace("bla", "alb", $value);
$ar1[$key] = str_replace("blubber", "rebbulb", $value);
}

tuts das nich, ich versteh dein problem grad nich^^

da wird nur der letzte Wert im array geändert, alle vorherigen bleiben unberührt.
eigentlich nicht, falls du das script verstanden hast^^
die foreach schleife geht jeden array wert durch
ich kenne foreach, aber wenn ich mit print_r($ar1); die Sache ausgebe, dann ist nur der letzte Wert geändert.

Ich hab den Fehler:
Wenn man statt
$ar1[$key] = str_replace(..., $value);
$ar1[$key] = str_replace(..., $ar1[$key]);
schreibt, dann klappt alles wunderbar
=)
 
the_sacrificer am 13.01.2007 16:07 schrieb:
the_sacrificer am 10.01.2007 21:53 schrieb:
klausbyte am 09.01.2007 20:53 schrieb:
the_sacrificer am 09.01.2007 13:18 schrieb:
klausbyte am 09.01.2007 12:57 schrieb:
Code:
foreach($ar1 as $key => $value) {
$ar1[$key] = str_replace("bla", "alb", $value);
$ar1[$key] = str_replace("blubber", "rebbulb", $value);
}

tuts das nich, ich versteh dein problem grad nich^^

da wird nur der letzte Wert im array geändert, alle vorherigen bleiben unberührt.
eigentlich nicht, falls du das script verstanden hast^^
die foreach schleife geht jeden array wert durch
ich kenne foreach, aber wenn ich mit print_r($ar1); die Sache ausgebe, dann ist nur der letzte Wert geändert.

Ich hab den Fehler:
Wenn man statt
$ar1[$key] = str_replace(..., $value);
$ar1[$key] = str_replace(..., $ar1[$key]);
schreibt, dann klappt alles wunderbar
=)
eigentlich unlogisch, aber im prinzip ja wurscht, wenns klappt^^
 
Zurück