Heim  >  Fragen und Antworten  >  Hauptteil

Vermeiden Sie das wiederholte Ersetzen von Zeichenfolgen und ersetzen Sie sie nur einmal

Ich versuche, eine Zeichenfolge zu ersetzen, aber es funktioniert wie eine Schleife

$especiais = ["b", "c", "k", "g", "j", "d", "f", "a", "e", "m", "i", "y", "h", "l", "p", "q", "n", "x", "o", "r", "z", "u", "v", "w", "s", "t"];

$certo =  ["pn", "veh", "veh", "ged", "ged", "gal", "or", "un", "graph", "tal", "gon", "gon", "na", "ur", "mals", "ger", "drux", "pal", "med", "don", "ceph", "van", "van", "van", "fam", "gisg"];

$resultado = str_replace($especiais, $certo, $phrase);

Beispielcode gibt Folgendes zurück: OL gibt medvanandon

zurück

Das genaue Ergebnis, das ich brauche, ist OL, das MEDUR

zurückgibt

Ich muss jeden Buchstaben genau durch den entsprechenden Buchstaben ersetzen, aber in diesem Code wird die Ersetzung mehrmals wiederholt.

P粉257342166P粉257342166432 Tage vor651

Antworte allen(1)Ich werde antworten

  • P粉021553460

    P粉0215534602023-09-07 00:38:42

    str_replace() PHP文档中有一条通知,内容如下:

    相反,我建议使用strtr(),它允许你以(from => to)的格式传递一个“替换”数组,如下面的示例:

    $replace = [
        'b' => 'pn',
        'c' => 'veh',
        'k' => 'veh',
        'g' => 'ged',
        'j' => 'ged',
        'd' => 'gal',
        'f' => 'or',
        'a' => 'un',
        'e' => 'graph',
        'm' => 'tal',
        'i' => 'gon',
        'y' => 'gon',
        'h' => 'na',
        'l' => 'ur',
        'p' => 'mals',
        'q' => 'ger',
        'n' => 'drux',
        'x' => 'pal',
        'o' => 'med',
        'r' => 'don',
        'z' => 'ceph',
        'u' => 'van',
        'v' => 'van',
        'w' => 'van',
        's' => 'fam',
        't' => 'gisg',
    ];
    
    $phrase = 'ol';
    
    echo strtr($phrase, $replace);

    这将提供您期望的输出,如下所示:

    medur

    演示: https://tehplayground.com/5YSxPYZfreiPTz9K

    Antwort
    0
  • StornierenAntwort