如何在 PHP 中过滤掉数组中的空白值并重新索引数组

0 php arrays

我正在使用打印出值print_r($_POST["prod_sizes"]);

print_r($_POST["prod_sizes"]);
Run Code Online (Sandbox Code Playgroud)

所以我得到这样的输出=>dsf,,thisnajndk,faklsf,klam,flkamlkd,mklmd,l,,adad

之后我使用这段代码:

$sizes = strip_tags(preg_replace('/[^a-z0-9,]/i', '', $_POST["prod_sizes"]));
$var = explode(',', $sizes);
print_r($var);
Run Code Online (Sandbox Code Playgroud)

我得到的输出像

Array
(
  [0] => dsf
  [1] => 
  [2] => thisnajndk
  [3] => faklsf
  [4] => klam
  [5] => flkamlkd
  [6] => mklmd
  [7] => l
  [8] => 
  [9] => adad
)
Run Code Online (Sandbox Code Playgroud)

从上面的输出我们可以看到数组中有一些空白值。如何删除这些空白值?

Joh*_*nde 5

PHP 的内置函数array_filter()将为您执行此操作:

$sizes = array_filter($sizes);
Run Code Online (Sandbox Code Playgroud)

请记住,任何等于false 的值也将被过滤掉。因此,如果零和 null 是有效值,您将需要编写自己的回调来进行过滤。

如果您还想重新索引键,只需array_values()在结果上使用:

$sizes = array_values(array_filter($sizes));
Run Code Online (Sandbox Code Playgroud)