昨天回家,一个朋友讨论起来查找某个字符在指定的字符串中所有出现的位置..
于是,今天早上写个方法试试
/**
* 查找某个字符在字符串中出现的所有位置
* $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