Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

วิธีลบค่าว่างเมื่อ explode สตริงใน PHP


ฟังก์ชัน array_filter() หรือตัวเลือก PREG_SPLIT_NO_EMPTY บน preg_split() สามารถใช้ลบค่าว่างจากสตริงเมื่อ explode:

ตัวอย่าง

<?php $_POST['tag'] = ",abc,defg,,,hijk,lmnop,,0,,"; echo "--- version 1: array_filter ----\n"; // หมายเหตุ วิธีนี้กรอง "0" ด้วย เนื่องจาก (bool)"0" เป็น FALSE ใน php // array_filter() เรียกด้วยพารามิเตอร์เดียว ทดสอบแต่ละองค์ประกอบเป็นค่า boolean $tags = array_filter( explode(",", $_POST['tag']) ); var_dump($tags); echo "--- version 2: array_filter/strlen ----\n"; // วิธีนี้เก็บองค์ประกอบ "0" ไว้ // array_filter() เรียก strlen() สำหรับแต่ละองค์ประกอบและทดสอบผลลัพธ์เป็น boolean $tags = array_filter( explode(",", $_POST['tag']), 'strlen' ); var_dump($tags); echo "--- version 3: PREG_SPLIT_NO_EMPTY ----\n"; $tags = preg_split('/,/', $_POST['tag'], -1, PREG_SPLIT_NO_EMPTY); var_dump($tags);  

ผลลัพธ์

จะได้ผลลัพธ์ดังนี้:

--- version 1: array_filter ---- array(4) { [1]=> string(3) " abc " [2]=> string(4) " defg " [5]=> string(4) "hijk" [6]=> string(5) "lmnop" } --- version 2: array_filter/strlen ---- array(5) { [1]=> string(3) "abc" [2]=> string(4) "defg" [5]=> string(4) "hijk" [6]=> string(5) "lmnop" [8]=> string(1) "0" } --- version 3: PREG_SPLIT_NO_EMPTY ---- array(5) { [0]=> string(3) "abc" [1]=> string(4) "defg" [2]=> string(4) "hijk" [3]=> string(5) "lmnop" [4]=> string(1) "0" }