全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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代码格式化工具http://tools./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相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

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


# PHP  # 字符串  # 逆序排列  # strrev函数  # 二分法  # 循环法  # 递归法  # 使用PHP实现二分查找算法代码分享  # PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解  # php二分法在IP地址查询中的应用  # php二分查找二种实现示例  # 深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表  # php顺序查找和二分查找示例  # php 数组二分法查找函数代码  # php数据结构与算法(PHP描述) 查找与二分法查找  # php中二分法查找算法实例分析  # 数据结构之利用PHP实现二分搜索树  # 递归  # 程序设计  # 操作技巧  # 放在  # 相关内容  # 出了  # 遍历  # 感兴趣  # 上一  # 数据结构  # 给大家  # 种方法  # 最简单  # 更多关于  # 所述  # 进行了  # 如何实现  # 性能测试  # 又该  # 使用了 


相关文章: 手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  C++如何使用std::optional?(处理可选值)  建站之星展会模版如何一键下载生成?  如何高效生成建站之星成品网站源码?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何在Golang中使用replace替换模块_指定本地或远程路径  Python路径拼接规范_跨平台处理说明【指导】  如何在万网主机上快速搭建网站?  ,如何利用word制作宣传手册?  建站之星上传入口如何快速找到?  建站org新手必看:2024最新搭建流程与模板选择技巧  免费ppt制作网站,有没有值得推荐的免费PPT网站?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  如何基于云服务器快速搭建个人网站?  如何在腾讯云服务器快速搭建个人网站?  如何挑选优质建站一级代理提升网站排名?  广州商城建站系统开发成本与周期如何控制?  如何快速辨别茅台真假?关键步骤解析  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  建站之星安装模板失败:服务器环境不兼容?  网站制作说明怎么写,简述网页设计的流程并说明原因?  如何规划企业建站流程的关键步骤?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  建站之星后台密码遗忘或太弱?如何重置与强化?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何自定义建站之星网站的导航菜单样式?  如何选择高效可靠的多用户建站源码资源?  如何批量查询域名的建站时间记录?  SQL查询语句优化的实用方法总结  建站上传速度慢?如何优化加速网站加载效率?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  建站之星导航如何优化提升用户体验?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  免费网站制作appp,免费制作app哪个平台好?  linux top下的 minerd 木马清除方法  如何快速搭建FTP站点实现文件共享?  建站OpenVZ教程与优化策略:配置指南与性能提升  如何用5美元大硬盘VPS安全高效搭建个人网站?  C++如何编写函数模板?(泛型编程入门)  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  股票网站制作软件,网上股票怎么开户?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  建站主机选购指南:核心配置优化与品牌推荐方案  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  西安专业网站制作公司有哪些,陕西省建行官方网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。