PHP字符串逆序排列实现方法小结【strrev函数,二

网络编程 2021-07-05 08:23www.168986.cn编程入门
这篇文章主要介绍了PHP字符串逆序排列实现方法,结合实例形式分析了strrev函数,二分法,循环法,递归法等常用的字符串逆序排列操作实现技巧,需要的朋友可以参考下

本文实例了PHP字符串逆序排列实现方法。分享给大家供大家参考,具体如下

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

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

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

PS这里为了方便大家阅读代码,使用了本站在线php代码格式化工具进行了格式化处理。)

1、二分法

/
 二分法实现字符串逆序排列
 @param string $str 源字符串
 @return string 返回逆序后的字符串
/
function reverse($str='') {
  $len = strlen($str);
  //不能使用count或sizeof
  $mid = floor($len/2);
  for ($i=0; $i<$mid; $i++) {
    $temp = $str[$i];
    $str[$i] = $str[$len-$i-1];
    $str[$len-$i-1] = $temp;
  }
  return $str;
}

2、循环法

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

3、递归法

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

更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》、《》及《》

希望本文所述对大家PHP程序设计有所帮助。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by