Heim >Backend-Entwicklung >PHP-Tutorial >PHP-String-Sortierung in umgekehrter Reihenfolge [strrev-Funktion, Dichotomie, Schleifenmethode, rekursive Methode]

PHP-String-Sortierung in umgekehrter Reihenfolge [strrev-Funktion, Dichotomie, Schleifenmethode, rekursive Methode]

高洛峰
高洛峰Original
2017-01-14 13:38:531272Durchsuche

Das Beispiel in diesem Artikel fasst die Implementierungsmethode der umgekehrten Anordnung von PHP-Strings zusammen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

In Bezug auf die umgekehrte Reihenfolge der Zeichenfolgen lautet der einfachste Testcode mit der PHP-Funktion strrev() wie folgt:

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
*/

Wie implementiert man dies, ohne die integrierte PHP-Funktion strrev() zu verwenden? Hier werden drei zusätzliche Methoden (Bisektionsmethode, Schleifenmethode, rekursive Methode) angegeben, es wird jedoch kein Leistungstest durchgeführt.

(PS: Um es für alle einfacher zu machen, den Code zu lesen, haben wir für die Formatierung das Online-PHP-Code-Formatierungstool dieser Website http://tools.jb51.net/code/jb51_php_format verwendet.)

1. Dichotomie

/**
* 二分法实现字符串逆序排列
* @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. Zirkuläre Methode

/**
* 循环实现对字符串的逆序排列(效率比二分法低)
* @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, Rekursive Methode

Ich hoffe, dieser Artikel wird für alle in der PHP-Programmierung hilfreich sein.

/**
* 递归实现对字符串的逆序排列(效率低)
* @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;
}
Weitere Artikel zu PHP-Stringanordnungen in umgekehrter Reihenfolge [strrev-Funktion, Dichotomie, Schleifenmethode, rekursive Methode] finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn