PHP处理字符串翻转问题总结

如何实现字符串的翻转问题?

延伸开来看,可以实现:

  1.单词的顺序翻转,单词字母顺序不变

  2.整个字符串字母全部翻转

  3.单词顺序不变,单词字母翻转

  4.实现中文翻转

 

如下示例字符串:

$str = "haha is houhou";

1、单词的顺序翻转,单词字母顺序不变:

function absort($str){//单词不变,字母翻转
    $str_arr = explode(" ",$str);
    $str1 = "";
    $len = count($str_arr);
    for($i=$len;$i--;$i>0){
        $str1 .=$str_arr[$i]." ";
    }
    return $str1;
}
echo absort($str);

结果:

houhou is haha

 

2、整个字符串字母全部翻转:这里有两个方法

//方法一:
function absort1($str){
    $len = strlen($str);
    for($i=$len;$i--;$i>=0){
        $newstr .= $str{$i};
    }
    return $newstr;
}
echo absort1($str);

//方法二:
echo strrev($str)

结果:

uohuoh si ahah

 

3.单词顺序不变,单词字母翻转:

function absort2($str){
    $arr = explode(" ",$str);
    $newstr = "";
    $arr1 = array();
    $len=count($arr);
    for($m=0;$m<$len;$m++){
      //for($m=$len;$m--;$m>=0){//如果倒序查询就是按字符串翻转了
    //这里调用了absort1的方法实现单词字母的翻转
    $arr1[$m] = absort1($arr[$m]);
    $newstr .= $arr1[$m]." ";
    }
    return $newstr;
}
echo absort2($str);

结果:

ahah si uohuoh

 

4、实现中文翻转:

function getRev($str,$encoding='utf-8'){
    $result = '';
    $len = mb_strlen($str);
    for($i=$len-1; $i>=0; $i--){
        $result .= mb_substr($str,$i,1,$encoding);
    }
    return $result;
}
$string = 'OK    你是正确的Ole';
echo getRev($string);

结果:

elO的确正是你 KO

posted on 2012-09-12 10:40  color_story  阅读(469)  评论(2编辑  收藏  举报

导航