PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ersetzten mit Arrays



mehlvogel
12-12-2002, 20:03
So ich hab zur Zeit etwas in einem Array stehen $arr1 und muss das in einem String $str durch etwas in $arr2 ersetzen. Also z.B.

$arr1[1] wird ersetzt durch $arr2[1], und so weiter.

Zur Zeit mach ich das mit ner While schleife und str_replace.

Das ist mir zu langsam: Gibt es eine Funktion / Möglichkeit wie ich das in einem Befehl mache? Ich möchte eigentlich keine Schleife drin haben



$i = count($this->keys);
while ($i > 0) {
$template = str_replace("{".$this->keys[$i]."}", $this->ergs[$i], $template);
$i--;
}


Was mir grad auffällt (und was ich gleicht este), wieviel Vorteile bringt eine foreach schleife?

----

2tes problem:

Ich hab nen Array, den ich an einen Array anhängen muss - wie mach ich das am besten OHNE Schleife (also schnell)

also:

$arr1 an $arr2 anhängen das heißt wenn $arr2 so aussieht (0,1,2,3) und $arr1 so (3,4,5,6,7) soll der entstehende Array so aussehn (0,1,2,3,3,4,5,6,7)

Anmerkung: Die Arrays können relativ viele Daten enthalten.

Gaert
12-12-2002, 21:05
Zu deinem ersten problem fällt mir jetzt so spontan keine Lösung ein.

Beim zweiten würde ich es mal mit array_merge() versuchen!

sticky bit
13-12-2002, 13:40
Hmm, zu deinem erstem Problem, wäre vielleicht walk_array() etwas das dir helfen könnte?

mehlvogel
16-12-2002, 11:07
hab die Lösung!

zuerst habe ich die zwei Arrays in einen umgewandelt mit



$arr[$key] = $wert;


Dann habe ich das einfach mit



str_replace(array_keys($arr), $arr, $str);


gemacht. Falls jemand mal ein ähnliches Problem haben sollte.