当前位置:Gxlcms > PHP教程 > PHP字符串逆序排列实现方法

PHP字符串逆序排列实现方法

时间:2021-07-01 10:21:17 帮助过:2人阅读

这篇文章主要介绍了PHP字符串逆序排列实现方法,结合实例形式总结分析了strrev函数,二分法,循环法,递归法等常用的字符串逆序排列操作实现技巧,需要的朋友可以参考下

具体如下:

关于字符串的逆序排列,最简单的使用PHP函数strrev()的测试代码如下:

  1. header('Content-type: text/html; charset=utf-8');
  2. $str = implode('', range(9, 0));
  3. print '< p><strong>Before reversed: </strong>'.$str.'< /p>';
  4. print '< p>< strong>After reversed: < /strong>'.strrev($str).'< /p>';
  5. /*
输出如下: Before reversed: 9876543210 After reversed: 0123456789 */

如果不用内置的PHP函数strrev(),又该如何实现呢?这里另外给出了3种方法(二分法、循环法、递归法),但没有进行性能测试。

1、二分法

  1. /**
  2. * 二分法实现字符串逆序排列
  3. * @param string $str 源字符串
  4. * @return string 返回逆序后的字符串
  5. */
  6. function reverse($str='') {
  7. $len = strlen($str);
  8. //不能使用count或sizeof
  9. $mid = floor($len/2);
  10. for ($i=0; $i<$mid; $i++) {
  11. $temp = $str[$i];
  12. $str[$i] = $str[$len-$i-1];
  13. $str[$len-$i-1] = $temp;
  14. }
  15. return $str;
  16. }

2、循环法

  1. /**
  2. * 循环实现对字符串的逆序排列(效率比二分法低)
  3. * @param string $str 源字符串
  4. * @return string 返回逆序后的字符串
  5. */
  6. function reverse($str='') {
  7. $result = '';
  8. for ($i=1; $i<=strlen($str); $i++) {
  9. $result .= substr($str, -$i, 1);
  10. }
  11. return $result;
  12. }

3、递归法

  1. /**
  2. * 递归实现对字符串的逆序排列(效率低)
  3. * @param string $str 源字符串
  4. * @return string 返回逆序后的字符串
  5. */
  6. function reverse($str='') {
  7. static $result = '';
  8. /* 用堆栈来理解递归调用 */
  9. if (strlen($str) > 0) {
  10. reverse(substr($str, 1));
  11. $result .= substr($str, 0, 1);
  12. //此句必须放在上一语句之后
  13. }
  14. return $result;
  15. }

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

php实现获取指定数量随机字符串的方法

php实现自定义截取中文字符串-utf8版

php查找字符串中第一个非0的位置截取详解

以上就是PHP字符串逆序排列实现方法的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行