45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:如何实现php字符串逆序排列功能?

如何实现php字符串逆序排列功能?

2017-08-02 17:42:42 来源:www.45fan.com 【

如何实现php字符串逆序排列功能?

本文实例总结了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代码格式化工具http://tools.jb51.net/code/jb51_php_format进行了格式化处理。)

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程序设计有所帮助。


本文地址:http://www.45fan.com/bcdm/90647.html
Tags: 字符串 PHP 逆序
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部