要求将中英混排的字符串拆分为数组
比如:我是php开发人员
要拆分为
Array ( [0] => 我 [1] => 是 [2] => p [3] => h [4] => p [5] => 开 [6] => 发 [7] => 人 [8] => 员) ;
我的解答是:
<?php
//先说明,此程序在UTF-8编码下运行的
$str = '我是php开发人员';
$str = preg_replace('#(w{1})#is','${1}${1}${1}',$str);//先转换成这样: $str = '我是ppphhhppp开发人员';
$len = strlen($str)/3;//UTF-8环境下,一个中文等于三个英文字符长度大小,
for($i = 0;$i<$len;$i++){
$val = substr($str,$i*3,3);
if(preg_match('#w{3}#is',$val)){
$array[] = $val{0};
}else{
$array[] = substr($str,$i*3,3);
}
}
echo '<pre>';
print_r($array);
?>
结果如下:
Array
(
[0] => 我
[1] => 是
[2] => p
[3] => h
[4] => p
[5] => 开
[6] => 发
[7] => 人
[8] => 员
)