ps建设网站步骤,佛山做外贸网站特色,安徽建设工程信息网文件,聊城做网站的公司价格前言2019年春节已过#xff0c;今天是上班第一天#xff0c;还得翻一翻之前没有看完的PHP源码。今天聊的是字符串顺序打乱函数str_shuffle。这个函数本身使用频率并不高。但是#xff0c;其内部实现还是非常有趣的。str_shuffle() 函数随机地打乱字符串中的所有字符。要注意…前言2019年春节已过今天是上班第一天还得翻一翻之前没有看完的PHP源码。今天聊的是字符串顺序打乱函数str_shuffle。这个函数本身使用频率并不高。但是其内部实现还是非常有趣的。str_shuffle() 函数随机地打乱字符串中的所有字符。要注意打乱的是字符串中的“字符”一个字母等于一个字符一个汉字等于2个字符自己实现如果在没有看PHP源码内部实现之前如果使用php实现内部字符串打乱顺序的操作,我能想到的是下面几种方式。循环随机数使用随机数可以有随机取字符串的字符拼接或者顺序取出放到随机数自定的位置。这两种方式都涉及到随机数重复的情况需要去重。这种方式的重点在于生成不重复的随机数。切分成数组然后打乱顺序用数组打乱顺序的方式实现其实是有些“作弊”嫌疑。PHP内部实现来看看PHP内部如何实现。其实PHP内部也是使用随机数实现但是他的巧妙之处在于使用随机数抽取字符串与一个特定的字符串(最后一个)进行替换。这样就不用去考虑随机数重复的问题。不会因为重复到账一些字符串被覆盖。文章开始的随机数抽取不能保证经过n次后结束因为需要跳过随机数重复的情况。但是php内部的实现都是n次循环后结束。在性能上肯定比需要去重的随机数方法要好。两个方法的出发点都一样但是稍微的不一样就可以带来很大的提升。总结以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作具有一定的参考学习价值如果有疑问大家可以留言交流谢谢大家对的支持。