2009-02-11 8 views
19

Esiste una funzione PHP incorporata per sostituire più valori all'interno di una stringa con una matrice che detta esattamente ciò che viene sostituito con cosa?Cerca e sostituisci più valori con valori multipli/diversi in PHP5?

Ad esempio:

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

E la risultante sarebbe: 'bleh bleh bleh blerh blerh'.

+6

Quel testo di esempio è terribilmente difficile da seguire. –

+0

buona domanda: D – ncomputers

risposta

62

Stai cercando str_replace().

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

// punta aggiuntive:

E se si è bloccato con un array associativo, come nel tuo esempio, è possibile dividerlo in quel modo:

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

str_replace() lo fa.

È possibile controllare lo manual per una spiegazione più dettagliata.

0

Per quello che si Ci sono, basta passare la matrice in str_replace come ricerca e sostituzione (usando array_keys sul parametro di ricerca se si desidera mantenere l'array così com'è).

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

È possibile controllare lo manual per una spiegazione dettagliata.

+0

Grazie, sta lavorando per me. – Hardik

+0

Ho usato lo stesso per la sostituzione dell'array :) convertendo la matrice e sostituendola :) – Shan

+0

ottima risposta, grazie! : D – ncomputers

Problemi correlati