ASP或PHP把字符串分割成数组

有一个字符串 "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨"
一字一分,生成 ("赵","钱","孙","李"........)
有什么好办法?
用了这个,所有的字都去光光了
$string= preg_replace('/[^\x{4e00}-\x{9fa5}]/u', '', $string);
=================================================================
其实我就是想把除英文以外的字符都去掉的。我把123456789换成了中文的大写,可是还有英雄,还有各种特殊符号要去掉
=================================================================
找出来了
$code = "/([".chr(0xb0)."-".chr(0xf7)."][".chr(0xa1)."-".chr(0xfe)."])/";
preg_match_all($code,$str,$arr);
print_r($arr[0]);
只取字符集里面的汉字,又生成数组了。
把我下一步任务也完成了
========================================
不知道选哪个了,选一楼吧。
最新回答
一个转身的距离。

2024-04-26 02:26:16

简单点就用字符串截取,把截下来的字符串放到新数组中
$newarr=array();
$str="abcdefg白郎hi";
for($i=0;$i<strlen($str);$i++){

if(ord($str[$i])>127){
$newarr[]=$str[$i].$str[++$i];
}else{
$newarr[]=$str[$i];
}

}
echo "<pre>";
print_r($newarr);
支持中英文

str_split函数碰见中文好像有点问题
月影依风

2024-04-26 01:30:19

PHP方法,需全部是中文字符
<?php
$s = '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨';
$len = strlen($s);
for($i=0;$i<$len;$i+=2){
$array[] = substr($s,$i,2);
}
print_r($array);
?>
冰月灵狐

2024-04-26 07:47:37

测试一下一个汉字占多少个字符长度,在php中用strlen()测出是3
str_split($string,3) 即可

当然,要保证你所使用的字符串都是中文的,否则会有问题,可使用
$string= preg_replace('/[^\x{4e00}-\x{9fa5}]/u', '', $string);
把非中文的给去掉