濮阳杆衣贸易有限公司

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

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

熱門標(biāo)簽:臨沂智能電銷機(jī)器人軟件 銀川ai電話機(jī)器人 十堰ai電話機(jī)器人效果怎么樣 芒果電銷機(jī)器人 電梯外呼線路板維修視頻 浙江外呼電話系統(tǒng)軟件 安陽自動(dòng)外呼系統(tǒng)價(jià)格是多少 上海公司外呼系統(tǒng)線路 地圖標(biāo)注風(fēng)向標(biāo)

前言

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

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

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

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

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

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

如果在沒有看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)

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

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

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

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

總結(jié)

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

您可能感興趣的文章:
  • php使用str_shuffle()函數(shù)生成隨機(jī)字符串的方法分析

標(biāo)簽:常州 吐魯番 荊門 寧夏 遵義 武威 遂寧 徐州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP內(nèi)部實(shí)現(xiàn)打亂字符串順序函數(shù)str_shuffle的方法》,本文關(guān)鍵詞  PHP,內(nèi)部,實(shí)現(xiàn),打亂,字符串,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP內(nèi)部實(shí)現(xiàn)打亂字符串順序函數(shù)str_shuffle的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP內(nèi)部實(shí)現(xiàn)打亂字符串順序函數(shù)str_shuffle的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    龙川县| 海丰县| 同仁县| 从化市| 四子王旗| 富源县| 临洮县| 鄂伦春自治旗| 阿图什市| 和龙市| 宁德市| 伊春市| 枞阳县| 广德县| 镶黄旗| 紫云| 松潘县| 鲁山县| 邢台县| 红安县| 博野县| 珲春市| 内乡县| 凤庆县| 虞城县| 宁阳县| 志丹县| 固安县| 高邑县| 河源市| 绍兴市| 尉氏县| 舟山市| 隆林| 大竹县| 吉隆县| 象州县| 周口市| 宝山区| 余干县| 仙游县|