昨天回家,一个朋友讨论起来查找某个字符在指定的字符串中所有出现的位置..
于是,今天早上写个方法试试
/*** 查找某个字符在字符串中出现的所有位置* $str string 被查询字符串* $char string 查询字符* $arr array() 返回数组*/function getCharpos($str, $char){$j = 0;$g = 0;$arr = array();$count = substr_count($str, $char);for($i = 0; $i < $count; $i++){$j = strpos($str, $char);if($i == 0){$arr[] = $j;}else{$arr[] = $j + $g + 1;}$str = substr($str, $j+1);$g = end($arr);}return $arr;}
原理就是截取字符串,再查找这个字符的位置。。。
不过后来,我看了一下手册,发现函数strpos还有第三个参数,就是告诉函数从哪算起,发现这个比较方便。。。
于是改成:
function getCharpos2($str, $char){$j = 0;$arr = array();$count = substr_count($str, $char);for($i = 0; $i < $count; $i++){$j = strpos($str, $char, $j);$arr[] = $j;$j = $j+1;}return $arr;}
如果发现什么问题,欢迎指出来!!
————————————————
版权声明:本文为CSDN博主「lansexingkong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lansexingkong/article/details/6297511
