現状
現在用意された文字列に特定の文字が含まれていたら、その文字を削除して略語を生成すると言うプログラムを作っています。そこで条件分岐でswitch文を使っているのですが、何故だか条件を読み取ってくれなくて息詰まっているので質問させていただいた次第です。
実現したいこと
現在のコードで読み取れない条件を読み取って、プログラムを完成させたいです。
ソースコード
php
1function aiueo($s) { 2 $ano = strpos($s, 'a') !== false; //aが含まれていたら 3 $ino = strpos($s, 'i') !== false; //iが含まれていたら 4 $uno = strpos($s, 'u') !== false; //uが含まれていたら 5 $eno = strpos($s, 'e') !== false; //eが含まれていたら 6 $ono = strpos($s, 'o') !== false; //oが含まれていたら 7 switch ($s) { 8 case $ano: 9 echo str_replace('a', '',$s), "\n"; //aを削除 10 break; 11 case $ino: 12 echo str_replace('i', '',$s), "\n"; //iを削除 13 break; 14 case $uno: 15 echo str_replace('u', '',$s), "\n"; //uを削除 16 break; 17 case $eno: 18 echo str_replace('e', '',$s), "\n"; //eを削除 19 break; 20 case $ono: 21 echo str_replace('o', '',$s), "\n"; //oを削除 22 break; 23 default: 24 echo $s, "\n"; //当てはまらない場合はそのまま表示する 25 break; 26 } 27 } 28 29 echo aiueo('taruto'));
本来なら、'trt'
となって欲しいのですが、このコードだとtruto
となってしまいます。
試したこと
-
switch内で削除する文字の順番の'a'と'o'を並べ替えたりしたのですが、予想通り
tarut
となってしまいます。 -
switchをif文に変えて、同じようなことをやってみたのですが、結果は同じで、
truto
と表示されてしまいます。
以上です。
解る方がいらしたらご教示よろしくお願いします!
回答1件
あなたの回答
tips
プレビュー