Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP分解字符串时,如何删除所有空值?_Php - Fatal编程技术网

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

使用PHP分解字符串时,如何删除所有空值?,php,Php,我想知道在使用PHP分解字符串时如何删除所有空值,例如,假设用户输入”、jay、john、、bill、glenn、、、“ 提前谢谢你的帮助 下面是分解用户提交的值的部分代码 $tags = explode(",", $_POST['tag']); 例如,通过或使用上的PREG_SPLIT_NO_EMPTY选项 只需尝试: $tags = explode(", ", $_POST['tag']); 在逗号后添加空格,就可以了 应该是explode(“,”,$tags),并保留给定字符串”,ja

我想知道在使用PHP分解字符串时如何删除所有空值,例如,假设用户输入
”、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']);