日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 将字符串打乱,PHP内部实现打乱字符串顺序函数str_shuffle的方法

發布時間:2025/3/8 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 将字符串打乱,PHP内部实现打乱字符串顺序函数str_shuffle的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

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

今天聊的是字符串順序打亂函數str_shuffle。這個函數本身使用頻率并不高。但是,其內部實現還是非常有趣的。

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

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

一個字母等于一個字符

一個漢字等于2個字符

自己實現

如果在沒有看PHP源碼內部實現之前,如果使用php實現內部字符串打亂順序的操作,我能想到的是下面幾種方式。

循環隨機數

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

這種方式的重點在于生成不重復的隨機數。

切分成數組然后打亂順序

用數組打亂順序的方式實現其實是有些“作弊”嫌疑。

PHP內部實現

來看看PHP內部如何實現。

其實PHP內部也是使用隨機數實現,但是他的巧妙之處在于使用隨機數抽取字符串與一個特定的字符串(最后一個)進行替換。這樣就不用去考慮隨機數重復的問題。不會因為重復到賬一些字符串被覆蓋。

文章開始的隨機數抽取,不能保證經過n次后結束,因為需要跳過隨機數重復的情況。但是php內部的實現,都是n次循環后結束。在性能上肯定比需要去重的隨機數方法要好。

兩個方法的出發點都一樣,但是稍微的不一樣就可以帶來很大的提升。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對的支持。

總結

以上是生活随笔為你收集整理的php 将字符串打乱,PHP内部实现打乱字符串顺序函数str_shuffle的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。