Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Cách xóa giá trị rỗng khi explode chuỗi trong PHP


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" }