$tekst = array(
0=>"Sara spiser skoleboller med rosiner til lunch. Hun spiser skoleboller hver dag.",
1=>"Frida liker fiskeboller og spiser fiskeboller fra lopphavet hver fredag",
2=>"Sara liker ikke fiskeboller og kaster fiskebollene fra lopphavet på lopphavet",
3=>"Sara og Frida spiser seg mette på skoleboller og fiskeboller"
);
så har jeg denne arrayen som inneholder hva som skal skiftes ut av array $tekst
så har jeg denne arrayen som inneholder hva som ikke skal skiftes ut i arrayen $tekst som skal overstyre arrayen $skift
$behold = array(
0=>"skoleboller med rosiner",
1=>"fiskeboller fra lopphavet",
2=>"fiskebollene fra lopphavet"
);
og til slutt ende opp med ny array
$ny_tekst = array(
0=>"Sara spiser skoleboller med rosiner til lunch. Hun spiser boller hver dag.",
1=>"Frida liker fisk og spiser fiskeboller fra lopphavet hver fredag",
2=>"Sara liker ikke fisk og kaster fiskebollene fra lopphavet på lopphavet",
3=>"Sara og Frida spiser seg mette på boller og fisk"
);
Hvordan kan dette kodes for å bruke minst mulig serverkraft?
Okei da, her er en løsning iallefall. Kan jo enkelt optimeres med å endre md5() til noe annet som er kjappere - samt loope i første array for ikke regenerere. Men - det klarer du sikkert selv å dille med CPU burde ikke være noe utfordring. Oftere billigere å kjøpe større CPU en å lage verdens raskeste kode.
<?php
$tekst = array(
0=>"Sara spiser skoleboller med rosiner til lunch. Hun spiser skoleboller hver dag.",
1=>"Frida liker fiskeboller og spiser fiskeboller fra lopphavet hver fredag",
2=>"Sara liker ikke fiskeboller og kaster fiskebollene fra lopphavet på lopphavet",
3=>"Sara og Frida spiser seg mette på skoleboller og fiskeboller"
);
$skift = array(
"skoleboller"=>"boller",
"fiskeboller"=>"fisk"
);
$behold = array(
0=>"skoleboller med rosiner",
1=>"fiskeboller fra lopphavet",
2=>"fiskebollene fra lopphavet"
);
$ny_tekst = array(
0=>"Sara spiser skoleboller med rosiner til lunch. Hun spiser boller hver dag.",
1=>"Frida liker fisk og spiser fiskeboller fra lopphavet hver fredag",
2=>"Sara liker ikke fisk og kaster fiskebollene fra lopphavet på lopphavet",
3=>"Sara og Frida spiser seg mette på boller og fisk"
);
foreach($behold AS $bk=>$bv){
foreach($tekst AS $tk=>$tv){
$tekst[$tk] = str_replace($bv,'{{' . md5($bv) . '}}',$tekst[$tk]);
}
}
foreach($skift AS $sk=>$sv){
foreach($tekst AS $tk=>$tv){
$tekst[$tk] = str_replace($sk,$sv,$tekst[$tk]);
}
}
foreach($behold AS $bk=>$bv){
foreach($tekst AS $tk=>$tv){
$tekst[$tk] = str_replace('{{' . md5($bv) . '}}',$bv,$tekst[$tk]);
}
}
foreach($tekst AS $tk=>$tv){
echo $tv . ' ';
}