我们如何在PHP编码中实现字符串顺序的颠倒呢?在这篇文章中,我们将为大家详细介绍有关PHP字符串颠倒顺序的实现方法,希望对大家有所帮助。
首先,php自带了一个字符串颠倒顺序的函数。
PHP字符串颠倒顺序代码:
$str = 'To Change The template';
echo strrev($str);
// 结果:etalpmet ehT egnahC oT
- 1.
- 2.
- 3.
其次,使用递归函数实现。当然效率很低!PHP字符串颠倒顺序代码:
function reverse_r($str)
{ if (strlen($str) > 0)
{ reverse_r(substr($str, 1));
}
echo substr($str, 0, 1);
return;}echo reverse_r($str);
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
第三,使用循环实现,效率有很大的提高。PHP字符串颠倒顺序代码:
/** * 利用循环实现字符串逆序排列 */
function reverse_i($str)
{ for ($i = 1; $i < = strlen($str); $i++)
{ echo substr($str, -$i, 1); } return;
}
echo reverse_i($str);
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
***,使用二分法实现,效率有更大的提高。PHP字符串颠倒顺序代码:
/** * 使用二分法来实现字符串颠倒顺序。 */
function reverse_a($str)
{ $forNum = ceil(strlen($str)/2);
$strLen = strlen($str);
for ( $i = 1; $i < = $forNum; $i++)
{ if($i <= $strLen-$i)
{ $tmp = $str[$i-1]; $str[$i-1] =
$str[$strLen-$i]; $str[$strLen-$i]= $tmp;
}
}
return $str; }
// 注:其实按照二分法来实现,理论上效率会提升一半,但是这个涉及
//到数组的指针操作,实际效率会怎样?
难说。echo "二分实现:\t",reverse_a($str);
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
#t#***一种PHP字符串颠倒顺序的方法涉及到三个知识点:
1. ceil()函数:进一法取整。如:5/4=1.25,ceil(5/4)=2,不管小数位是否大于0.5,均进一取整。
2. 字符串当成数组访问,如$str[0],$str[1]…可以访问字符串$str的***个字符、第二个字符…
3. 二分法。PHP字符串颠倒顺序的方法3需要循环的次数是字符串的长度,而方法4则是字符串长度的一半,所以效率会提高一倍(理论上)。