最小代价实现将字符串完全反序, e.g. 将 “1234567890” 转换成 “0987654321”
要实现字符串反转,有两种方式:
使用 PHP 自带函数
$a = '1234567890';
echo strrev($a);
|
不使用函数(循环)
$str = ''; $i = 0;
while( isset($a[$i]) && !is_null($a[$i])) { $str = $a[$i++].$str; }
echo $str;
|
拓展
上面两种方式,反转含有中文的字符串时,会因为编码出现乱码问题。
解决:
mb 系列函数没有直接实现反转的函数,于是用循环的方式去实现。
$a = '@#¥(*&中文一段abcdefg^';
function my_strrev(string $string) { if (empty($string)) { return $string; } $str = ''; $i = 0; while ($i < mb_strlen($string)) { $str = mb_substr($string, $i++, 1).$str; } return $str; }
echo my_strrev($a);
|