Vermeiden Sie das wiederholte Ersetzen von Zeichenfolgen und ersetzen Sie sie nur einmal
P粉257342166
P粉257342166 2023-09-06 11:10:09
0
1
661

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粉257342166
P粉257342166

Antworte allen(1)
P粉021553460

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage