使用PHP分解字符串时,如何删除所有空值?
我想知道在使用PHP分解字符串时如何删除所有空值,例如,假设用户输入使用PHP分解字符串时,如何删除所有空值?,php,Php,我想知道在使用PHP分解字符串时如何删除所有空值,例如,假设用户输入”、jay、john、、bill、glenn、、、“ 提前谢谢你的帮助 下面是分解用户提交的值的部分代码 $tags = explode(",", $_POST['tag']); 例如,通过或使用上的PREG_SPLIT_NO_EMPTY选项 只需尝试: $tags = explode(", ", $_POST['tag']); 在逗号后添加空格,就可以了 应该是explode(“,”,$tags),并保留给定字符串”,ja
”、jay、john、、bill、glenn、、、“
提前谢谢你的帮助
下面是分解用户提交的值的部分代码
$tags = explode(",", $_POST['tag']);
例如,通过或使用上的PREG_SPLIT_NO_EMPTY选项
只需尝试:
$tags = explode(", ", $_POST['tag']);
在逗号后添加空格,就可以了 应该是
explode(“,”,$tags)
,并保留给定字符串”,jay,john,,,,bill,glenn,,,,“
。仍保留最后一个空元素;-)@VolkerK向我展示了两个示例,因为$tags=preg\u split(“/,/”,$\u POST['tag'],-1,preg\u split\u NO\u EMPTY)代码>单独工作。谢谢@斯内格:是的,他展示了两种不同的方法。他首先列出的array\u filter
方法可能更标准,但正如他所提到的,它可以删除您想要保留的值,因此他将preg\u split
方法作为替代方法。这对某些人不起作用的原因是因为它不处理空白。对于这一点,我建议使用带有回调的数组过滤器。如果你想确保你的数组被重新索引,那么把它包装在array\u值中
--- version 1: array_filter ----
array(4) {
[1]=>
string(3) "jay"
[2]=>
string(4) "john"
[5]=>
string(4) "bill"
[6]=>
string(5) "glenn"
}
--- version 2: array_filter/strlen ----
array(5) {
[1]=>
string(3) "jay"
[2]=>
string(4) "john"
[5]=>
string(4) "bill"
[6]=>
string(5) "glenn"
[8]=>
string(1) "0"
}
--- version 3: PREG_SPLIT_NO_EMPTY ----
array(5) {
[0]=>
string(3) "jay"
[1]=>
string(4) "john"
[2]=>
string(4) "bill"
[3]=>
string(5) "glenn"
[4]=>
string(1) "0"
}
//replace multiple commas
$tags = preg_replace('/,+/', ',', $_POST['tag']);
//explode
$tags = explode(',', $tags);
$tags = array_diff(explode(",", $_POST['tag']),array(""));
$tags = explode(", ", $_POST['tag']);