这篇文章主要介绍了php字符串逆序排列实现方法,结合实例形式总结分析了strrev函数,二分法,循环法,递归法等常用的字符串逆序排列操作实现技巧,需要的朋友可以参考下
具体如下:
关于字符串的逆序排列,最简单的使用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种方法(二分法、循环法、递归法),但没有进行性能测试。
立即学习“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中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号