Hei, yritän tällä kertaa vaihtaa sanoja stringistä.
Ennen olen tehnyt näin:
<?php $etsi = array("hei", "jaakko"); $korvaa = array("moi", "heikki"); $lause = "hei, olen jaakko!"; // Lause ennen $lause = str_replace($etsi, $korvaa, $lause); // Lause jälkeen echo $lause; // Näytä lause ?>
Mutta ajattelin eikö näillä keyllä ja valueilla arrayssä voisi tehdä jotain? Itse kehtittelen hallintapaneelia, jonka koodia sörkkii kaiken maailman tyypit, ja haluaisin, että kaikki korvaus ja etsiminen olisi samassa arrayssä. Eli jotenkin näin:
<?php $etsi-ja-korvaa = array("hei" => "moi", "jaakko" => "heikki"); $lause = "hei, olen jaakko!"; // Lause ennen $lause = etsijakorvaa($etsi-ja-korvaa, $lause); // Lause jälkeen echo $lause; // Näytä lause ?>
Olen tällein temppuillut:
<?php $etsi-ja-korvaa = array("hei" => "moi", "jaakko", "heikki"); $lause = "hei, olen jaakko!"; while($value = current($etsi-ja-korvaa)) { $lause = str_replace(array_search($value, $lause), $value, $lause); next($etsi-ja-korvaa); } echo $lause; ?>
Tuo ei siis toimi, mutta aavistan, että olen oikeilla jäljillä(kö)?
Kiitos jo vastauksista :)
Syötä str_replaceen etsittäväksi $etsiJaKorvaa arrayn keyt, ja korvattavaksi vastaavasti $etsiJaKorvaa arrayn valuet. Et tarvitse mitään while looppia.
Jes, kiitos!
Taas hiukkasen viisaampi...
Aihe on jo aika vanha, joten et voi enää vastata siihen.