Devdit
 

PHP preg_replace แบบกำหนดได้หลายคำทำอย่างไร

1.7K

ต้องการใช้คำสั่ง preg_replace เพื่อแทนที่คำ หรือตัวอักษร แต่ต้องการกำหนดได้แบบหลายคำ เช่น ดินสอ เป็น Pencil และหนังสือ เป็น Book ปัจจุบันใส่คำสั่ง preg_replace เท่ากับจำนวนคำ ต้องการวิธีที่ง่าย และสะดวกกว่านี้ โค้ดตัวอย่างตามด้านล่าง

<?php
    $data = "ดินสอ หนังสือ";
    $data = preg_replace('/ดินสอ/', 'Pencil', $data);
    $data = preg_replace('/หนังสือ/', 'Book', $data);
    echo $data;
?>

 

วิธีแก้ไข

แนะนำให้ใช้คำสั่ง preg_replace ร่วมกับตัวแปรชนิด array รูปแบบการเขียนเหมือนเดิม แค่เปลี่ยน parameters ตัวที่หนึ่ง และสอง ให้เป็น array ระบุจำนวนคำที่ต้องการแทนที่เท่ากับคำที่ต้องการใช้งาน สามารถเขียนโปรแกรมได้ดังนี้

<?php
    $v = "ดินสอ หนังสือ";
    $v = preg_replace(
        array('/ดินสอ/', '/หนังสือ/'),
        array('Pencil', 'Book'),
        $v
    );
    echo $v;
?>

ผลลัพธ์

Pencil Book
แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ