我正在用PHP编写一个基本的莫尔斯代码转换器,它可以接受一个字符串并将其转换为莫尔斯代码.它使用了一个关联数组,一个foreach循环和一个for循环.它有效,除了某些原因它在每个转换后的字符后输出等效于’0’的莫尔斯码.我无法弄清楚0的来源.如果我从关联数组中删除0,没有问题,但我希望能够转换数字.如果有人能够给我一些反馈,那将非常感激.

这是代码:

$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

foreach($assoc_array as $letter => $code){

if($letter == $string_lower[$i]){

echo "$code
";

}

}

}

?>

解决方法:

主要问题是你所做的“更多”.当你可以使用字符串从中获取所需的数据时,无需循环遍历你的$assoc_array.

这也使用更少的资源,因为您只需循环所需的字母/数字/空格的精确数量,而不是从a-z和0-9循环.

/*Rest of your code above*/

for($i=0;$i

echo (isset($assoc_array[$string_lower[$i]])) ? $assoc_array[$string_lower[$i]] . '
' : 'ERROR';

}

由于您的数组包含a-z和0-9中的所有内容,因此您可以轻松地调用所需的字母而无需担心丢失数据.

编辑:

添加了一个isset()检查,几乎不需要它,因为$assoc_array涵盖了所有需要的字母/数字,但比抱歉更安全. (感谢@Farkie提醒我)

标签:php,arrays,loops,converter,morse-code

来源: https://codeday.me/bug/20190611/1220130.html

php解摩斯电码,PHP摩尔斯电码转换器相关推荐

  1. 摩尔斯电码_摩尔斯电码二叉树和baader meinhof现象

    摩尔斯电码 The other night I was watching some videos by 2 Youtube channels I really like. The first one ...

  2. php+摩尔斯电码,如何在Symfony 3中使用PHP编码和解码摩尔斯电码(翻译摩尔斯电码)...

    本文概述 莫尔斯电码是一种通过键入一系列电子脉冲(短脉冲(称为"点")和长脉冲(" _")表示)来发送文本消息的方法.尽管你可能认为此代码仅在电影中使用, 但是 ...

  3. php+摩尔斯电码,PHP摩尔斯电码转换器

    我正在用 PHP编写一个基本的莫尔斯代码转换器,它可以接受一个字符串并将其转换为莫尔斯代码.它使用了一个关联数组,一个foreach循环和一个for循环.它有效,除了某些原因它在每个转换后的字符后输出 ...

  4. android光传感实现摩斯密码,一晚掌握摩尔斯电码的快速记忆法

    在业余无线电的通信过程中,摩尔斯电码由于其神秘性引起了广大无线电业余爱好者的无限兴趣.然而,大家往往一眼看到摩尔斯电码编码规则,觉得很复杂难以记忆,索性放弃. 摩尔斯数字电码 摩尔斯数字电码 先从数字 ...

  5. 利用python实现将文本、摩尔斯电码与用滴答表示的摩尔斯电码三者相互转换

    文章目录 目录 前言 一.摩尔斯电码的对照表: 二.python代码的完整展示 三.代码运行结果的展示: 四.总结与注意事项 前言 本文的代码主要通过字典与反转字典,实现摩尔斯电码与文本的相互转换,并 ...

  6. 漫画:什么是摩尔斯电码?

    摩尔斯电码是什么 摩尔斯电码(Morse code),是1837年由美国人发明,本质上是一种对信息的编码,最初用于人们的远程通信. 那个时候,人们连电话都还没发明出来,更不用说手机和互联网了.人们远程 ...

  7. 摩尔斯电码、摩斯电码

    摩尔斯电码(又译为摩斯电码,Morse code)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母.数字和标点符号等.它由美国人艾尔菲德·维尔发明,当时他正在协助Samue ...

  8. 简单的摩尔斯电码(又译为摩斯电码)

    1.名字解析: 摩尔斯电码(Morse alphabet)(又译为摩斯电码)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母.数字和标点符号等.由美国人摩尔斯(Samuel ...

  9. 【愚公系列】2022年04月 编码解码-摩尔斯电码和栅栏密码

    文章目录 一.摩尔斯电码和栅栏密码的介绍 1.摩尔斯电码 1.1 摩尔斯电码的概念 1.2 摩尔斯电码的应用: 2.栅栏密码 2.1 栅栏密码的概念 2.2 栅栏密码的应用 2.3 栅栏密码的脚本 3 ...

最新文章

  1. PostgreSQL:创建自增序列id,分区表,分区表子表
  2. Spring-Boot:写出来的网站访问不到静态资源?怎样通过url访问SpringBoot项目中的静态资源?localhost:8989/favicon.ico访问不了工程中的图标资源?
  3. 修改class文件_VM实战(六) - 通过案例深入学习class文件结构原理
  4. CListCtrl列表控件---总结
  5. VTK:相交线用法实战
  6. android中解析后台返回的json字符串
  7. 相信应该有百分九十的男生看见这个东西是这个状态吧?
  8. 133-PHP子类无法重写父类private同名函数
  9. php 中间表统计,多对多中间表详解
  10. 编程语言对比 容器
  11. python中的多进程与多线程(一)
  12. learning opencv3: 一:overview 打开自己的视频文件加上暂停快进按钮
  13. android盒子多个DLNA冲突,说说DLNA、AirPlay 、Miracast那点事
  14. labview 控件安装步骤
  15. python 等值面 插值_对离散点进行克里金插值并输出矢量等值面
  16. iOS 升级HTTPS配置ATS-----(1)------
  17. GPIO接口-引脚对照
  18. OpenVINO之链接库
  19. adobe xd_如何在Adobe XD中创建Finance App UI设计
  20. [附源码]计算机毕业设计springboot酒店客房管理信息系统

热门文章

  1. 总体统计量的估计方法
  2. delphi eof
  3. AAC音频格式ADTS头详解
  4. 细胞克隆形成实验的目的及实验过程的注意事项
  5. USB线序用万用表如何测量
  6. 罗爷:创新法律服务交易模式 找到你的专属lawyer
  7. Python 爬虫十六式 - 第八式:实例解析-全书网
  8. 生成唯一序列号 Unique ID
  9. LoG高斯拉普拉斯算子介绍
  10. 转载:关于社会保险和四金