Suchen und ersetzen Sie mehrere Werte durch mehrere/unterschiedliche Werte in PHP?

Lesezeit: 2 Minuten

Benutzeravatar von atomicharri
atomarri

Gibt es eine eingebaute PHP-Funktion, um mehrere Werte innerhalb einer Zeichenfolge durch ein Array zu ersetzen, das genau vorschreibt, was durch was ersetzt wird?

Zum Beispiel:

$searchreplace_array = Array('blah' => 'bleh', 'blarh' => 'blerh');
$string = 'blah blarh bleh bleh blarh';

Und das Ergebnis wäre: ‘bleh blerh bleh bleh blerh’.

Du suchst nach str_replace().

$string = 'blah blarh bleh bleh blarh';
$result = str_replace(
  array('blah', 'blarh'), 
  array('bleh', 'blerh'), 
  $string
);

// Zusätzlicher Tipp:

Und wenn Sie mit einem assoziativen Array wie in Ihrem Beispiel feststecken, können Sie es so aufteilen:

$searchReplaceArray = array(
  'blah' => 'bleh', 
  'blarh' => 'blerh'
);
$result = str_replace(
  array_keys($searchReplaceArray), 
  array_values($searchReplaceArray), 
  $string
); 

  • array_values() ist nicht nötig — str_replace() ignoriert die Schlüssel von Arrays, die als Argumente 1 und 2 übergeben werden (Array suchen und Array ersetzen).

    – mickmackusa

    6. März um 23:31 Uhr

Benutzeravatar von nithi
Nithi

$string = 'blah blarh bleh bleh blarh';
$trans = array("blah" => "blerh", "bleh" => "blerh");
$result = strtr($string,$trans);

Sie können die überprüfen Handbuch zur ausführlichen Erklärung.

  • Ich habe das gleiche für die Array-Ersetzung verwendet 🙂 indem ich das Array konvertiert und ersetzt habe 🙂

    – Shan

    17. März 2015 um 1:25 Uhr

  • Einfach $%^& vielen Dank … Ich diese Antwort ist Gold wert … Ich kann nicht glauben, dass das so alt ist … (Y)

    – Rodrigo Zuluaga

    19. November 2022 um 23:04 Uhr

FALLS jemand nach dem Ersetzen derselben Zeichenfolgen durch unterschiedliche Werte sucht (pro Vorkommen). Beispiel, um alle zu ersetzen ## nach Zahlen++ ODER Werte aus einem Array-

$split_at="##";
$string = "AA ##  BB ##  CC ##  DD";
$new_string = '';
// echo $string;
$replace_num = 1;
$replace_arr = ['first' , 'second' , 'third'];
$split_at_cnt = substr_count($string, $split_at);
for ($split=0; $split <= $split_at_cnt; $split++)
{
    $new_string .= str_replace('##', ($replace_num++)." : ".$replace_arr[$split], substr( $string, 0, strpos($string, $split_at)+strlen($split_at)));
    $string = substr($string, strpos($string, $split_at)+strlen($split_at));
}

echo $new_string;

Benutzeravatar von chaos
Chaos

str_replace() macht das.

Sie können die überprüfen Handbuch zur näheren Erläuterung.

Für das, was Sie dort haben, übergeben Sie einfach dieses Array in str_replace da sowohl das Suchen als auch das Ersetzen (mithilfe von array_keys auf den Suchparameter, wenn Sie das Array unverändert lassen möchten).

1448990cookie-checkSuchen und ersetzen Sie mehrere Werte durch mehrere/unterschiedliche Werte in PHP?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy