PHP不使用任何内置函数实现字符串翻转

实现字符串翻转PHP本身自带一个函数就可以解决,strrev函数。这里不适用任何内置函数实现字符串翻转

案例一(纯字母):

$str = 'abcdefghig k';   //假设测试的字符串/g与k之间有一个空格
//php中的字符串可以看做数组来处理,比如代码输出  echo $str[4]; ,结果为 e,也就是abcdefghigk的第四个字母

function str_rev ($str)
{
    for ($i = 0; true; $i++) //true模拟死循环
    {   
        if (!isset($str[$i])){   //如果没有数据,也就是超出字符串长度,那么跳出死循环
            break; 
        }
    }    
    //那么字符串长度就是$i - 1
    $last_str = '';
    for ($j = $i - 1; $j >=0 ; $j -- )
    {
        $last_str .= $str[$j];
    }
    return $last_str;
}

echo str_rev($str);
k gihgfedcba  //输出结果

 案例二(有中文,且包含内置函数):

$str = 'abcd卡忙北鼻abc d';  
 function str_rev($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;
    }
echo str_rev($str);
d cba鼻北忙卡dcba  //输出结果

 

posted @ 2018-01-05 11:41  温柔的风  阅读(477)  评论(0编辑  收藏  举报