PHP将字符串按指定长度转换为数组

已邀请:

liuliangsong - 80后IT民工

赞同来自:

在字符串中无汉字,都是ASCII字符情况下可以使用str_split函数:
<?php
print_r(str_split('aiezu', 1));
print_r(str_split('aiezu.com', 3));
输出:
Array
(
    [0] => a
    [1] => i
    [2] => e
    [3] => z
    [4] => u
)
Array
(
    [0] => aie
    [1] => zu.
    [2] => com
)

如果有汉字,用下面自定义函数:
<?php
//按长度分割含中文字符串的自定义函数
function mb_str_split($str, $length=1, $encoding='UTF-8') {
    $arr = array();
    for($i=0; $i<mb_strlen($str, $encoding); $i+=$length) {
        $arr = mb_substr($str, $i, $length, $encoding);
    }
    return $arr;
}
print_r(mb_str_split('爱E族', 1, 'UTF-8'));
print_r(mb_str_split('爱E族 aiezu.com', 4, 'UTF-8'));
输出:
Array
(
    [0] => 爱
    [1] => E
    [2] => 族
)
Array
(
    [0] => 爱E族 
    [1] => aiez
    [2] => u.co
    [3] => m
)

要回复问题请先登录注册