Nahrazování řetězce v PHP - píše toi o znak víc
Když dám
$co = array('ʃ', 'tʃ', 'θ', 'ð', 'ŋ', 'ŋg', 'ŋk';
$cim = array('š', 'č', 't', 'd', 'ng', 'ng', 'nk';
echo str_replace($co, $cim, $ipacz);
a do formuláře zápis IPA, tak mi to vypíše 'ŋgg' (o jedno g víc). Někdy to ale nahradí dobře. Nemá to být v uvozovkách, nebo tak něco? Řádím tady http://ipa-fonetic.logopedie-kladno.cz/index.html
Zkonttoluj si, zda se ti neprovedou 2 nahrazeni za sebou, nejprve se nahradi ng a pak jeste neco
Právě, když vložím do formuláře řetězec přímo jen těch znaků, (('ʃ', 'tʃ', 'θ', 'ð', 'ŋ', 'ŋg', 'ŋk'), nak se mi udělá ngg, nkk). Kde to další "g" bere?
Seřaď si to pole $co od nejdelších po nejkratší. Tahle ti to nejdřív chytne ŋ a k ŋg se to vůbec nedostane.
ŋ = ng
a tedy ŋg = ŋ + g = ng + g = ngg
Je to v podstatě podobný problém jako tady:
Děkuji ti, už to "ngg" nedělá. Snad jsem správně poskládal pořadí i u "čím".