Hàm array_filter() hoặc tùy chọn PREG_SPLIT_NO_EMPTY trên preg_split() có thể dùng để loại bỏ giá trị rỗng từ chuỗi khi explode:
Ví dụ
<?php
$_POST['tag'] = ",abc,defg,,,hijk,lmnop,,0,,";
echo "--- version 1: array_filter ----\n";
// lưu ý lọc cả "0" vì (bool)"0" là FALSE trong PHP
// array_filter() gọi với 1 tham số test mỗi phần tử như boolean
$tags = array_filter(explode(",", $_POST['tag']));
var_dump($tags);
echo "--- version 2: array_filter/strlen ----\n";
// cách này giữ phần tử "0"
// array_filter() gọi strlen() cho mỗi phần tử và test kết quả như 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);
Kết quả
--- 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" }