2009-02-11 11 views
19

Czy istnieje wbudowana funkcja PHP, która zastępuje wiele wartości w ciągu znaków tablicą, która dokładnie określa, co jest zastępowane przez co?Wyszukaj i zamień wiele wartości z wieloma/różnymi wartościami w PHP5?

Na przykład:

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

i otrzymaną byłoby: 'bleh blerh bleh bleh blerh'.

+6

Ten przykładowy tekst jest strasznie podstępny do naśladowania. –

+0

dobre pytanie: D – ncomputers

Odpowiedz

62

Szukasz str_replace().

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

// Dodatkowa wskazówka:

A jeśli utkniesz z tablicy asocjacyjnej jak w przykładzie, można podzielić go tak:

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

str_replace() robi to.

Możesz sprawdzić manual, aby uzyskać bardziej szczegółowe wyjaśnienie.

0

za to, co Po prostu przekaż tę tablicę do str_replace jako zarówno wyszukiwanie, jak i zamianę (przy użyciu parametru array_keys dla parametru wyszukiwania, jeśli chcesz zachować tablicę bez zmian).

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

Możesz sprawdzić manual, aby uzyskać szczegółowe wyjaśnienie.

+0

Dzięki, działa dla mnie. – Hardik

+0

Użyłem tego samego do zamiany tablicy :) poprzez konwersję tablicy i jej zamianę :) – Shan

+0

Świetna odpowiedź, dziękuję! :RE – ncomputers

Powiązane problemy