php 处理:去除字符串中的长度<=2 以及 >=3的部分?

作者站长头像
站长
· 阅读数 7

一个字符串: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个回答
avatar
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);
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容