首頁 >後端開發 >php教程 >PHP字串逆序排列實作方法

PHP字串逆序排列實作方法

墨辰丷
墨辰丷原創
2018-05-26 15:31:403066瀏覽

這篇文章主要介紹了PHP字串逆序排列實現方法,結合實例形式總結分析了strrev函數,二分法,循環法,遞歸法等常用的字串逆序排列操作實現技巧,需要的朋友可以參考下

具體如下:

關於字串的逆序排列,最簡單的使用PHP函數strrev()的測試程式碼如下:

header('Content-type: text/html; charset=utf-8');
$str = implode('', range(9, 0));
print &#39;< p><strong>Before reversed: </strong>&#39;.$str.&#39;< /p>&#39;;
print &#39;< p>< strong>After reversed: < /strong>&#39;.strrev($str).&#39;< /p>&#39;;
/*
输出如下:
Before reversed: 9876543210
After reversed: 0123456789
*/

如果不用內建的PHP函數strrev(),又該如何實作呢?這裡另外給了3種方法(二分法、循環法、遞歸法),但沒有進行效能測試。

1、二分法

/**
* 二分法实现字符串逆序排列
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function reverse($str=&#39;&#39;) {
  $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=&#39;&#39;) {
  $result = &#39;&#39;;
  for ($i=1; $i<=strlen($str); $i++) {
    $result .= substr($str, -$i, 1);
  }
  return $result;
}

#3、遞迴法

/**
* 递归实现对字符串的逆序排列(效率低)
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function reverse($str=&#39;&#39;) {
  static $result = &#39;&#39;;
  /* 用堆栈来理解递归调用 */
  if (strlen($str) > 0) {
    reverse(substr($str, 1));
    $result .= substr($str, 0, 1);
    //此句必须放在上一语句之后
  }
  return $result;
}

以上就是本文的全部內容,希望對大家的學習有幫助。


相關推薦:

php實作取得指定數量隨機字串#的方法

#php實作自訂截取中文字串-utf8版

#php查找字串字串
中第一個非0的位置截取詳解

#######

以上是PHP字串逆序排列實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn