最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP內(nèi)部實(shí)現(xiàn)打亂字符串順序函數(shù)str_shuffle的方法

 更新時(shí)間:2019年02月14日 10:33:33   作者:寫PHP的老王  
這篇文章主要給大家介紹了關(guān)于PHP內(nèi)部實(shí)現(xiàn)打亂字符串順序函數(shù)str_shuffle的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

2019年春節(jié)已過(guò),今天是上班第一天,還得翻一翻之前沒(méi)有看完的PHP源碼。

今天聊的是字符串順序打亂函數(shù)str_shuffle。這個(gè)函數(shù)本身使用頻率并不高。但是,其內(nèi)部實(shí)現(xiàn)還是非常有趣的。

str_shuffle() 函數(shù)隨機(jī)地打亂字符串中的所有字符。

要注意,打亂的是字符串中的“字符”

  • 一個(gè)字母等于一個(gè)字符
  • 一個(gè)漢字等于2個(gè)字符

自己實(shí)現(xiàn)

如果在沒(méi)有看PHP源碼內(nèi)部實(shí)現(xiàn)之前,如果使用php實(shí)現(xiàn)內(nèi)部字符串打亂順序的操作,我能想到的是下面幾種方式。

循環(huán)隨機(jī)數(shù)

使用隨機(jī)數(shù),可以有隨機(jī)取字符串的字符拼接,或者順序取出,放到隨機(jī)數(shù)自定的位置。這兩種方式都涉及到隨機(jī)數(shù)重復(fù)的情況,需要去重。

這種方式的重點(diǎn)在于生成不重復(fù)的隨機(jī)數(shù)。

切分成數(shù)組然后打亂順序


用數(shù)組打亂順序的方式實(shí)現(xiàn)其實(shí)是有些“作弊”嫌疑。

PHP內(nèi)部實(shí)現(xiàn)

來(lái)看看PHP內(nèi)部如何實(shí)現(xiàn)。

其實(shí)PHP內(nèi)部也是使用隨機(jī)數(shù)實(shí)現(xiàn),但是他的巧妙之處在于使用隨機(jī)數(shù)抽取字符串與一個(gè)特定的字符串(最后一個(gè))進(jìn)行替換。這樣就不用去考慮隨機(jī)數(shù)重復(fù)的問(wèn)題。不會(huì)因?yàn)橹貜?fù)到賬一些字符串被覆蓋。

文章開(kāi)始的隨機(jī)數(shù)抽取,不能保證經(jīng)過(guò)n次后結(jié)束,因?yàn)樾枰^(guò)隨機(jī)數(shù)重復(fù)的情況。但是php內(nèi)部的實(shí)現(xiàn),都是n次循環(huán)后結(jié)束。在性能上肯定比需要去重的隨機(jī)數(shù)方法要好。

兩個(gè)方法的出發(fā)點(diǎn)都一樣,但是稍微的不一樣就可以帶來(lái)很大的提升。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論

娄烦县| 岳普湖县| 东乡县| 金乡县| 马山县| 扎兰屯市| 旺苍县| 弥渡县| 班玛县| 辽阳市| 乌兰察布市| 城口县| 诸城市| 永德县| 巴马| 曲阳县| 和田县| 巧家县| 兴宁市| 芒康县| 彭山县| 晋宁县| 团风县| 垫江县| 醴陵市| 唐山市| 茶陵县| 长岭县| 富平县| 宽城| 太谷县| 新和县| 滕州市| 南康市| 徐汇区| 平谷区| 宕昌县| 金门县| 上栗县| 宁武县| 兰考县|