- 相關(guān)推薦
如何運(yùn)用PHP實(shí)現(xiàn)字符串逆序排列
如何運(yùn)用PHP實(shí)現(xiàn)字符串逆序排列呢?下面是小編給大家提供的實(shí)現(xiàn)方法,大家可以參考練習(xí),更多詳情請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)。
關(guān)于字符串的逆序排列,最簡(jiǎn)單的使用PHP函數(shù)strrev()的測(cè)試代碼如下:
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
*/
如果不用內(nèi)置的PHP函數(shù)strrev(),又該如何實(shí)現(xiàn)呢?這里另外給出了3種方法(二分法、循環(huán)法、遞歸法),但沒有進(jìn)行性能測(cè)試。
1、二分法
/**
* 二分法實(shí)現(xiàn)字符串逆序排列
* @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、循環(huán)法
/**
* 循環(huán)實(shí)現(xiàn)對(duì)字符串的逆序排列(效率比二分法低)
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function reverse($str='') {
$result = '';
for ($i=1; $i<=strlen($str); $i++) {
$result .= substr($str, -$i, 1);
}
return $result;
}
3、遞歸法
/**
* 遞歸實(shí)現(xiàn)對(duì)字符串的逆序排列(效率低)
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function reverse($str='') {
static $result = '';
/* 用堆棧來理解遞歸調(diào)用 */
if (strlen($str) > 0) {
reverse(substr($str, 1));
$result .= substr($str, 0, 1);
//此句必須放在上一語(yǔ)句之后
}
return $result;
}
【如何運(yùn)用PHP實(shí)現(xiàn)字符串逆序排列】相關(guān)文章:
PHP字符串如何實(shí)現(xiàn)word末字符實(shí)現(xiàn)大小寫互換10-19
php如何快速實(shí)現(xiàn)兩表合并并有序排列08-02
php一個(gè)解析字符串排列數(shù)組的方法09-07
PHP中多態(tài)如何實(shí)現(xiàn)09-04
php指定長(zhǎng)度分割字符串str-split函數(shù)如何實(shí)現(xiàn)06-15
PHP 數(shù)組和字符串互相轉(zhuǎn)換實(shí)現(xiàn)方法06-28