昨天回家,一个朋友讨论起来查找某个字符在指定的字符串中所有出现的位置..
    于是,今天早上写个方法试试

    1. /**
    2. * 查找某个字符在字符串中出现的所有位置
    3. * $str string 被查询字符串
    4. * $char string 查询字符
    5. * $arr array() 返回数组
    6. */
    7. function getCharpos($str, $char){
    8. $j = 0;
    9. $g = 0;
    10. $arr = array();
    11. $count = substr_count($str, $char);
    12. for($i = 0; $i < $count; $i++){
    13. $j = strpos($str, $char);
    14. if($i == 0){
    15. $arr[] = $j;
    16. }else{
    17. $arr[] = $j + $g + 1;
    18. }
    19. $str = substr($str, $j+1);
    20. $g = end($arr);
    21. }
    22. return $arr;
    23. }

    原理就是截取字符串,再查找这个字符的位置。。。
    不过后来,我看了一下手册,发现函数strpos还有第三个参数,就是告诉函数从哪算起,发现这个比较方便。。。
    于是改成:

    1. function getCharpos2($str, $char){
    2. $j = 0;
    3. $arr = array();
    4. $count = substr_count($str, $char);
    5. for($i = 0; $i < $count; $i++){
    6. $j = strpos($str, $char, $j);
    7. $arr[] = $j;
    8. $j = $j+1;
    9. }
    10. return $arr;
    11. }

    如果发现什么问题,欢迎指出来!!
    ————————————————
    版权声明:本文为CSDN博主「lansexingkong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lansexingkong/article/details/6297511