Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Str_replace ja array

joah [21.05.2014 14:25:32]

#

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 :)

eipii [21.05.2014 14:40:28]

#

Syötä str_replaceen etsittäväksi $etsiJaKorvaa arrayn keyt, ja korvattavaksi vastaavasti $etsiJaKorvaa arrayn valuet. Et tarvitse mitään while looppia.

joah [21.05.2014 14:54:49]

#

Jes, kiitos!

Taas hiukkasen viisaampi...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta