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) 编辑 收藏 举报