【发布时间】:2016-07-09 01:58:20
【问题描述】:
我正在用 PHP 编写一个基本的莫尔斯电码转换器,它可以接受一个字符串并将其转换为莫尔斯电码。它使用关联数组、foreach 循环和 for 循环。它可以工作,但由于某种原因,它会在每个转换后的字符后输出等效于“0”的摩尔斯电码。我不知道 0 是从哪里来的。如果我从关联数组中删除 0,则没有问题,但我也希望能够转换数字。如果有人能够给我一些反馈,那将不胜感激。
代码如下:
<?php
$string = "dog";
$string_lower = strtolower($string);
$assoc_array = array(
"a"=>".-",
"b"=>"-...",
"c"=>"-.-.",
"d"=>"-..",
"e"=>".",
"f"=>"..-.",
"g"=>"--.",
"h"=>"....",
"i"=>"..",
"j"=>".---",
"k"=>"-.-",
"l"=>".-..",
"m"=>"--",
"n"=>"-.",
"o"=>"---",
"p"=>".--.",
"q"=>"--.-",
"r"=>".-.",
"s"=>"...",
"t"=>"-",
"u"=>"..-",
"v"=>"...-",
"w"=>".--",
"x"=>"-..-",
"y"=>"-.--",
"z"=>"--..",
"0"=>"-----",
"1"=>".----",
"2"=>"..---",
"3"=>"...--",
"4"=>"....-",
"5"=>".....",
"6"=>"-....",
"7"=>"--...",
"8"=>"---..",
"9"=>"----.",
"."=>".-.-.-",
","=>"--..--",
"?"=>"..--..",
"/"=>"-..-.",
" "=>" ");
for($i=0;$i<strlen($string_lower);$i++){
foreach($assoc_array as $letter => $code){
if($letter == $string_lower[$i]){
echo "$code<br/>";
}
}
}
?>
【问题讨论】:
-
您可以创建上面的脚本。我看不出有什么理由让你不能做到这一点。这只是一些字符串操作。虽然我不想帮你,但你需要做功课。 :D
标签: php arrays loops converter morse-code