在处理字符串时,去除特定长度的部分是一个常见需求。本问答将探讨如何使用 php 快速处理此任务。
给定字符串:1,22,333,啊,啊啊,啊啊啊,4444
任务:去除字符串中长度小于或等于 2 和大于或等于 3 的部分
立即学习“PHP免费学习笔记(深入)”;
问题:原始代码存在的问题
提供的原始 php 代码使用了一个自定义的字符串长度统计函数 count_strlen,但这不是 php 中的标准函数。此外,count_strlen 使用 iconv_strlen 函数,它可能在 php 8 之后的版本中已弃用。
解决方案:使用 mb_strlen
可以使用 php 的标准函数 mb_strlen 来计算字符串的长度,它考虑了多字节字符编码。下方的代码演示了如何使用 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);
在这个解决方案中: