如何使用php的str_split()和mb_str_split()?字符串切割成数组
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文说一个php
下的一个相对无用的函数str_split()
,说它的主要原因是:想弄明白这个函数和已经被废弃的split()
函数的区别,或者说和现在的explode()
这个函数的区别。仅此而已,无它。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程故事。本文测试环境:win10
,php@8.2.11
,nginx@1.15.11
。
函数原型
str_split(string $string, int $length = 1): array
将一个字符串转换为数组。
【参数】:
string
,输入字符串。length
,每一段的长度。
【返回值】:
如果指定了可选的length
参数,返回数组中的每个元素长度均为length
的块,除了最后一个块,如果字符串不是均匀划分,则可能会更短。默认length
是1
,这意味着每个块的大小是一个字节。
普通分割 str_split
直接上代码,一眼看明白。
$str = "苏南sunan";
print_r(explode("su", $str));
print_r(str_split($str));
print_r($str[0]);
不过,运算结果又是一个刷新认知的结果了。如下图所示:
汉字分割 mb_str_split
开启mb_string.so
扩展后,再看看新的函数对比:
$str = "苏南sunan";
print_r(str_split($str,3));
print_r(mb_str_split($str));
print_r(mb_str_split($str,3));
对比结论
对比之下,有如下代码结论:
- 一个
utf8
汉字占3个字节的位置。这个事情,可以从上述代码的运行结果充分证明。 explode()
/split()
是使用一个小字符来分割一个大字符。str_split()
/mb_str_split()
是分割一个大字符串分割成几个几乎等长的小字符串,每个小字符串占N个(字节)长度。
结语
苏南大叔的博客更多是给自己看的,就是个知识积累的笔记本。更多php
文章,参考:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。