總結(jié)一下平時開發(fā)過程中遇到反轉(zhuǎn)字符串功能帶中文函數(shù)實現(xiàn)蜂嗽。
第一種
<?php
function reverse($str) {
$len = mb_strlen($str, 'utf-8');
for ($i = 0; $i < $len; $i++) {
$arr[] = mb_substr($str, $i, 1, "utf-8");
}
return implode("", array_reverse($arr));
}
header("Content-type: text/html; charset=utf-8");
print_r(reverse("php是世界上最好得語言qwe"));
第二種
<?php
header("content-type:text/html;charset=utf-8");
function str_rev_gb($str){
if(!is_string($str)||!mb_check_encoding($str,'UTF-8')){
exit("輸入類型不是UTF8類型的字符串");
}
$array=array();
//將字符串存入數(shù)組
$l=mb_strlen($str,'UTF-8');//在mb_strlen計算時,選定內(nèi)碼為UTF8轿腺,則會將一個中文字符當(dāng)作長度1來計算
for($i=0;$i<$l;$i++){
$array[]=mb_substr($str,$i,1,'UTF-8');
}
//反轉(zhuǎn)字符串
krsort($array);
//拼接字符串
$string=join($array);
return $string;
}
或者
function myStrrev($str,$encoding='utf-8'){
$newstr = '';
$len = mb_strlen($str);
for($i=$len-1; $i>=0; $i--){
$newstr .= mb_substr($str,$i,1,$encoding);
}
return $newstr;
}
上面用到得倆個自帶函數(shù) array_reverse 與 krsort 他們得區(qū)別是:
array_reverse() 將數(shù)組倒序排序,鍵值改變
krsort() 將數(shù)組倒序排序塑顺,鍵值不變
$array = array('0'=>a,'1'=>b,'2'=>c);
$a = array_reverse($array);
krsort($array);
print_r($array);
echo "__________";
print_r($a);
得出結(jié)果
Array ( [3] => c [2] => b [0] => a ) ________Array ( [0] => c [1] => b [2] => a )