如何使用 PHP 分解字符串时删除所有空值?

phpserver side programmingprogramming更新于 2025/4/16 21:37:17

array_filter() 或 preg_split() 上的 PREG_SPLIT_NO_EMPTY 选项可用于在分解字符串时从字符串中删除空值 −

示例

<?php
$_POST['tag'] = ",abc,defg,,,hijk,lmnop,,0,,";
echo "--- version 1: array_filter ----
"; // 请注意,这还会过滤掉 "0",因为 (bool)"0"在 php 中为 FALSE // 仅使用一个参数调用的 array_filter() 将每个元素作为布尔值进行测试 $tags = array_filter(explode(",", $_POST['tag'])); var_dump($tags); echo"--- 版本 2: array_filter/strlen ----
"; // 这个保留了"0"元素 // array_filter() 对数组的每个元素调用 strlen() 并将结果作为布尔值进行测试 $tags = array_filter( explode(",", $_POST['tag']), 'strlen' ); var_dump($tags); echo "--- version 3: PREG_SPLIT_NO_EMPTY ----
"; $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" }

相关文章