母音と接尾辞をハイフンで区切るスクリプトを修正しようとしています。
<?php
$string = 'celebrationing';
$patterns = array();
$patterns[0] = '/a/';
$patterns[1] = '/e/';
$patterns[2] = '/i/';
$patterns[3] = '/o/';
$patterns[4] = '/u/';
$patterns[5] = '/tion/';
$replacements = array();
$replacements[0] = '-a';
$replacements[1] = '-e';
$replacements[2] = '-i';
$replacements[3] = '-o';
$replacements[4] = '-u';
$replacements[5] = '-tion';
echo preg_replace($patterns, $replacements, $string);
?>
スクリプトは母音に対しては正常に機能しますが、接尾辞 -tion になると、ハイフンが出力されません。
出力: c-el-ebr-at-i-on-ing
私が考えているのは、-i と -o の両方が母音であるという事実が、プロセス全体をめちゃくちゃにしているということです。
-tion のすべてのインスタンスが -i および -o に取って代わり、6 つのパターンすべてが認識されるようにするにはどうすればよいですか?