探讨PHP字符串颠倒顺序的实现方法

开发 后端
PHP字符串颠倒顺序可以通过使用递归函数实现;使用循环实现;使用二分法实现等等。后两种的实现方法的效率是非常高的。

我们如何在PHP编码中实现字符串顺序的颠倒呢?在这篇文章中,我们将为大家详细介绍有关PHP字符串颠倒顺序的实现方法,希望对大家有所帮助。

首先,php自带了一个字符串颠倒顺序的函数。

PHP字符串颠倒顺序代码:

  1. $str = 'To Change The template';
  2. echo strrev($str);
  3. // 结果:etalpmet ehT egnahC oT  

其次,使用递归函数实现。当然效率很低!PHP字符串颠倒顺序代码:

  1. function reverse_r($str)
  2.  { if (strlen($str) > 0)
  3. { reverse_r(substr($str, 1)); 
  4. echo substr($str, 0, 1); 
  5. return;}echo reverse_r($str);   

 

第三,使用循环实现,效率有很大的提高。PHP字符串颠倒顺序代码:

  1. /** * 利用循环实现字符串逆序排列 */ 
  2. function reverse_i($str)
  3. { for ($i = 1; $i < = strlen($str); $i++)
  4. { echo substr($str, -$i, 1); } return; 
  5. }
  6. echo reverse_i($str);   

 

***,使用二分法实现,效率有更大的提高。PHP字符串颠倒顺序代码:

  1. /** * 使用二分法来实现字符串颠倒顺序。 */ 
  2. function reverse_a($str)
  3. { $forNum = ceil(strlen($str)/2); 
  4. $strLen = strlen($str); 
  5. for ( $i = 1; $i < = $forNum; $i++) 
  6. { if($i <= $strLen-$i)
  7. { $tmp = $str[$i-1]; $str[$i-1] = 
    $str[$strLen-$i]; $str[$strLen-$i]= $tmp; 
  8. return $str; }
  9. // 注:其实按照二分法来实现,理论上效率会提升一半,但是这个涉及
  10. //到数组的指针操作,实际效率会怎样?
    难说。echo "二分实现:\t",reverse_a($str);  

#t#***一种PHP字符串颠倒顺序的方法涉及到三个知识点:

1. ceil()函数:进一法取整。如:5/4=1.25,ceil(5/4)=2,不管小数位是否大于0.5,均进一取整。

2. 字符串当成数组访问,如$str[0],$str[1]&hellip;可以访问字符串$str的***个字符、第二个字符&hellip;

3. 二分法。PHP字符串颠倒顺序的方法3需要循环的次数是字符串的长度,而方法4则是字符串长度的一半,所以效率会提高一倍(理论上)。

责任编辑:曹凯 来源: 百度博客
相关推荐

2009-12-01 09:18:50

PHP分割字符串

2009-12-01 10:00:51

PHP判断字符串是否为

2009-11-25 09:13:41

PHP数组转字符串PHP字符串转数组

2009-11-30 18:26:06

PHP字符串替换

2009-12-01 09:52:40

PHP过滤字符串

2009-11-26 16:26:32

PHP字符串mbstr

2009-12-02 19:42:24

PHP页面自动跳转

2009-12-01 16:34:21

PHP表单

2010-06-21 09:48:43

2011-07-12 16:14:17

2009-11-26 13:52:07

PHP字符串替换函数s

2010-09-02 10:02:17

PHP

2009-12-01 10:38:08

PHP字符串函数

2009-11-27 10:24:25

PHP字符串操作

2009-11-30 14:08:42

PHP字符串原理

2009-11-27 09:05:50

PHP函数split(

2009-12-11 13:16:04

PHP查询字符串

2009-12-08 10:50:12

PHP GD库实现中文

2021-05-18 09:08:18

字符串子串对象

2009-11-24 09:55:44

PHP字符串函数
点赞
收藏

51CTO技术栈公众号