反转一个字符串很容易使用strrev函数即可,假如没有strrev函数也没有数组函数怎么显示字符串反转。
背景知识
1 2
| string 中的字符可以通过一个从 0 开始的下标,用类似 array 结构中的方括号包含对应的数字来访问和修改,比如 $str[42]。 可以把 string 当成字符组成的 array。函数 substr() 和 substr_replace() 可用于操作多于一个字符的情况。 -- php手册
|
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <?php function reverseString($string) { $length = strlen($string); $reverseString = ''; while($length--) { $reverseString .= $string[$length]; } return $reverseString; } $str = "Hello world"; echo reverseString($str); ```php 使用str_split 函数也可以。 ```php $array = str_split($str); print_r($array);
|
参考 字符串反转,神奇的算法-读《编程珠玑(第二版)》 有更高效的写法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?php function ReverseString(&$s, $from, $to) { while ($from < $to) { $t = $s[$from]; $s[$from++] = $s[$to]; $s[$to--] = $t; } } function LeftRotateString($s, $n, $m) { $m %= $n; ReverseString($s, 0, $m - 1); ReverseString($s, $m, $n - 1); ReverseString($s, 0, $n - 1); return $s; } echo LeftRotateString('abcdef', 6, 3);
|