我创建了一个函数,该函数从硬编码的单词列表中随机生成一个短语.我有一个函数get_words(),该函数具有一串硬编码的单词,将其转换成一个数组,然后重新排列并返回.

get_words()由generate_random_phrase()调用,它会反复遍历get_words()n次,并且在每次迭代时,将n个单词连接到最终的短语中,该短语最终将返回给用户.

我的问题是,由于某种原因,PHP一直给我不一致的结果.它的确给了我一些随机的单词,但给出的单词数量却不一致.我将4个单词指定为默认单词,它给我的短语是1-4个单词,而不是4个单词.该程序非常简单,几乎难以置信,我无法查明确切的问题.似乎链中断开的链接是正在索引的$words数组,似乎由于某种原因有时索引编制失败.我不熟悉PHP,有人可以向我解释吗?

function generate_random_phrase() {

$words = get_words();

$number_of_words = get_word_count();

$phrase = "";

$symbols = "!@#$%^&*()";

echo print_r($phrase);

for ($i = 0;$i < $number_of_words;$i++) {

$phrase .= " ".$words[$i];

}

if (isset($_POST['include_numbers']))

$phrase = $phrase.rand(0, 9);

if (isset($_POST['include_symbols']))

$phrase = $phrase.$symbols[rand(0, 9)];

return $phrase;

}

function get_word_count() {

if ($_POST['word_count'] < 1 || $_POST['word_count'] > 9)

$word_count = 4; #default

else

$word_count = $_POST['word_count'];

return $word_count;

}

function get_words() {

$BASE_WORDS = "my sentence really hope you

like narwhales bacon at midnight but only

ferver where can paper laptops spoon door knobs

head phones watches barbeque not say";

$words = explode(' ', $BASE_WORDS);

shuffle($words);

return $words;

}

?>

解决方法:

在$BASE_WORDS中,选项卡和换行符在爆炸数组中占据了空间,这就是原因.删除换行符和选项卡,它将生成正确的答案.即:

$BASE_WORDS = "my sentence really hope you like narwhales bacon at midnight but only ferver where can paper laptops spoon door knobs head phones watches barbeque not say";

标签:arrays,php

来源: https://codeday.me/bug/20191029/1957295.html

php 字符串索引值,PHP:字符串索引不一致?相关推荐

  1. java字符串取值_java 字符串截取的三种方法

    1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时. String str = " ...

  2. java 数组的索引值_按索引访问Java数组位置的值

    我是 Java的新手,我只是在努力使用数组.我有一段代码,我在编写教程时已经编写过,但我很难理解它,如果有人能向我解释,我会很高兴. 我尝试过各种不同的方法(向我的鸭子解释,写下来等等)并且仍然无法理 ...

  3. linux计算字符串md5值,计算字符串md5的几个方法

    很多时候我们都需要计算md5用来做校验或者什么的,比如下了个iso,要做个校验看下到的文件是否没有损坏,从而刻盘啊什么的. 这样的需求很好办,直接使用linux提供的工具即可: md5sum file ...

  4. python字符串find函数-Python字符串的方法,查找和替换

    Python数字 整型 int 如:1 4 8 浮点型 float 如:1.0 3.6 78.9 长整型 long 如:1L 37565846588L(在一个整数后面加上L就是长整型,理论上长整型的长 ...

  5. python查询字符串是否包含某字符串_python 判断检测字符串中是否包含指定字符或字符串(比如:?)...

    in: 10px auto; padding: 0px; color: rgb(17, 17, 17); font-family: Verdana, Arial, Helvetica, sans-se ...

  6. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

    LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...

  7. 聚集索引和非聚集索引详解 (zhuang)

    SQL中.聚集索引和非聚集索引有何区别? 聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致,聚集索引表记录的排列顺序与索引的排列顺序一致,优点是查询速度快,因为一旦具有第一个 ...

  8. python字符串排序_Python对字符串列表进行排序

    在本教程中,我们将看到如何对字符串列表进行排序.我们将使用sort方法和sorted函数对给定的字符串列表进行排序.然后,我们将了解如何根据不同的条件(例如长度,值等)对字符串列表进行排序, 让我们看 ...

  9. 索引的使用—— 验证索引提升查询效率 || 避免索引失效 —— 全值匹配 /最左前缀法则/范围查询右边的列,不能使用索引/不要在索引列上进行运算操作/字符串不加单引号,造成索引失效

    索引的使用 索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题 验证索引提升查询效率 查询速度很快,接近0s ,主要的原因是因为id为主键,有索 ...

  10. String字符串中获取所有匹配结果的索引值

    String字符串中获取所有匹配结果的索引值 例如现在我们有这样一段代码 public interface ActErrorHisMapper {public List<ActError> ...

最新文章

  1. javascript字典中添加数组_如何在JavaScript中使用数组方法:Mutator方法
  2. tomcat ajp协议安全限制绕过漏洞_Apache Tomcat文件包含漏洞(CVE20201938)复现
  3. html鼠标离开点击停留,Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)...
  4. raid卡组不同raid_RAID 类型介绍
  5. mysql 配置自动截断_MySql超长自动截断实例详解
  6. 【Java架构师】JVM性能优化(一)JVM技术入门下
  7. 为什么派生的子类报错不能实例化抽象类_C# 接口与抽象类实例分析
  8. SqlServer批量更新两关联表的数据
  9. 好用的各种文件在线转换工具,文件加密解密等Speedpdf
  10. RFC请求注解(Request for Comments)介绍|internet最重要的文献资源
  11. 3款好用的文件管理软件
  12. 火车头怎么采集php的,火车采集器采集入库教程
  13. JavaScript中的call(),apply(),伪数组转化为数组
  14. canvas 画一幅画
  15. Excel VBA连接ORACLE数据库
  16. 《质量总监成长记》笔记
  17. 转载:【SQL练习】经典SQL练习题
  18. AtCoder Beginner Contest 217
  19. 数学基础知识积累——傅里叶分析
  20. 数据类型和运算符答案

热门文章

  1. Java验证(javafx)
  2. GC对吞吐量和延迟的影响
  3. MongoDB和Web应用程序
  4. 多个动态包含一个JSF标签
  5. Spring集成–从头开始应用程序,第1部分
  6. Spring和JSF集成:异常处理
  7. 使用HMAC(Play 2.0)保护REST服务
  8. IntelliJ IDEA for Mac 如何在当前的普通Java项目中创建新的模块/添加模块/创建模块
  9. 求余和取模的计算公式
  10. Linux 系统关于应该把程序安装在目录 /usr 还是目录 /usr/local 下的思考