php 处理:去除字符串中的长度<=2 以及 >=3的部分?
一个字符串:1,22,333,啊,啊啊,啊啊啊,4444以逗号分隔去除字符串中的长度<=2 以及 >=3的部分得到22,333,啊啊,啊啊啊需要怎么处理最快?
字符长度统计函数:
function count_strlen($string = null)
{
$fileType = mb_detect_encoding($string , array('UTF-8','GBK','LATIN1','BIG5')) ; //判断字符串中文编码的类型
$length = iconv_strlen($string,$fileType);//根据字符编码计算字符串长度
return $length;
}
处理函数:
function p_str($str) {
$arr = explode(',', $str);
$result = [];
foreach ($arr as $value) {
if (count_strlen($value) > 2 && count_strlen($value) < 3 && !in_array($value, $result)) {
$result[] = $value;
}
}
return implode(',', $result);
}
请问:哪里有问题嘛?
回复
1个回答
test
2024-07-09
不是有个mb_strlen吗
<?php
$str='1,22,333,啊,啊啊,啊啊啊,4444';
$strarr=explode(",",$str);
$result=array_filter($strarr,function($s){
return mb_strlen($s,'utf8')>1 && mb_strlen($s,'utf8')<4;
});
var_dump($result);
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容