2009-02-11 65 views
19

Có một hàm PHP sẵn có để thay thế nhiều giá trị bên trong một chuỗi với một mảng chỉ ra chính xác những gì được thay thế bằng cái gì?Tìm kiếm và thay thế nhiều giá trị bằng nhiều giá trị khác nhau trong PHP5?

Ví dụ:

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

và kết quả sẽ là: 'bleh blerh bleh bleh blerh'.

+6

Văn bản mẫu đó là rất khó để theo dõi. –

+0

câu hỏi hay: D – ncomputers

Trả lời

62

Bạn đang tìm kiếm str_replace().

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

// mũi bổ sung:

Và nếu bạn đang mắc kẹt với một mảng kết hợp như trong ví dụ của bạn, bạn có thể chia nó lên như thế:

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

str_replace() thực hiện điều đó.

Bạn có thể kiểm tra manual để được giải thích chi tiết hơn.

0

Đối với những gì bạn đã đạt được điều đó, chỉ cần chuyển mảng đó vào str_replace làm cả tìm kiếm và thay thế (sử dụng array_keys trên tham số tìm kiếm nếu bạn muốn giữ nguyên mảng).

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

Bạn có thể kiểm tra manual để được giải thích chi tiết.

+0

Cảm ơn, nó làm việc cho tôi. – Hardik

+0

Tôi đã sử dụng cùng một mảng thay thế :) bằng cách chuyển đổi mảng và thay thế nó :) – Shan

+0

câu trả lời tuyệt vời, cảm ơn bạn! : D – ncomputers

Các vấn đề liên quan