[PHP] Wieso funktioniert folgende Umwandlung nicht?
-
$persons = $_POST['children'] + $_POST['adults']; $transform_vars = array( "PERSONS" => "$persons", "CHILDREN" => $_POST['children'], "ADULTS" => $_POST['adults'], "PRICE_PRO_PERSON" => "$price_person", "PRICE_PRO_CHILD" => "$price_child", "PRICE_PRO_PERSON" => "$price_person" ); foreach($transform_vars as $key => $value) { $str = str_replace($key, $value, $string); }
Wieso funktioniert obiges nicht? Also im $string soll jedes vorkommende $key durch $value ersetzt werden. Funktioniert aber nicht... und ich habe keine Ahnung warum..... Vielleicht kann es ja mal jemand von euch testen!?
MfGTobsen
-
Müsste es nicht key, $value, $string); heißen? Sonst bringt doch das Ersetzen gar nichts
-
jo danke......
-
warum erstellst du zuerst ein array und machst dann erst das str_replace über das array??? das ist ja lahm...
-
@shade wie würdest du es denn machen? Und wieso ist das lahm?
MfGTobsen
-
Original erstellt von Tobsen:
**@shade wie würdest du es denn machen? Und wieso ist das lahm?
**du koenntest zB strstr nehmen:
str,$transform_vars);
allerdings bin ich doch gerade unsicher geworden ob strstr wirklich schneller ist als viele str_replace aufrufe... naja, ich glaub schon, sicher bin ich aber nicht
der nachteil deiner methode ist:
du rufst str_replace sehr oft aufrufst -> viele kopien.
-
du kannst auch str_replace() zwei arrays für die ersten zwei Parameter übergeben. Wie sich das Ganze aber geschwindigkeitsmäßig verhällt weiß ich nicht (müsste man vielleicht testen)