Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/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_Arrays - Fatal编程技术网

如何在PHP中从数组中过滤出空值&;对数组重新编制索引

如何在PHP中从数组中过滤出空值&;对数组重新编制索引,php,arrays,Php,Arrays,我正在使用print_r($_POST[“prod_size”])打印值 所以我得到如下输出=>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); 我得到的输出像 Array (

我正在使用
print_r($_POST[“prod_size”])打印值

所以我得到如下输出=>
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);
我得到的输出像

Array
(
  [0] => dsf
  [1] => 
  [2] => thisnajndk
  [3] => faklsf
  [4] => klam
  [5] => flkamlkd
  [6] => mklmd
  [7] => l
  [8] => 
  [9] => adad
)
从上面的输出可以看出,数组中有一些空白值。如何删除这些空白值?

PHP的内置功能可以帮助您:

$sizes = array_filter($sizes);
请记住,任何值都将被过滤掉。因此,如果零和null是有效值,则需要编写自己的回调函数以进行筛选

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

$sizes = array_values(array_filter($sizes));

替换此行中的代码=>
$var=explode(“,”,$size)&添加此代码:

$var = array_filter(explode(',', $sizes));
$reindexed = array();

foreach ($var as $row)
    {
        if ($row !== null)
           $reindexed[] = $row;
    }

print_r($reindexed);
exit();
现在让我们来看看代码的解释

1.)这是第一个参考链接,我从中向filer提出了这个想法,但当你使用数组时,你会看到数组索引混乱=>

因此,我们创建一个新的变量
重新编制索引
作为一个数组来存储重新编制索引的数组值

2.)要删除混乱的数组索引并重新索引我从此链接获取的数组,请执行以下操作=>


这里是最好的方法

# Array
$array = array('tomato', '', 'apple', 'melon', 'cherry', '', '', 'banana');
返回

Array
(
    [0] => tomato
    [1] => 
    [2] => apple
    [3] => melon
    [4] => cherry
    [5] => 
    [6] => 
    [7] => banana
)
通过这样做

$array = array_values(array_filter($array));
你明白了吗

Array
(
    [0] => tomato
    [1] => apple
    [2] => melon
    [3] => cherry
    [4] => banana
)
解释

array\u values()
:以数字形式返回输入数组和索引的值


array\u filter()
:使用用户定义的函数过滤数组元素(UDF如果未提供该函数,将删除输入表中所有值为FALSE的项)

array\u filter()
maybe?可能是重复的,可能是重复的。我还想对数组重新编制索引,然后只对结果执行
array\u values()
。我将相应地更新我的答案。这是一种过于复杂的方法,尤其是考虑到PHP已经内置了这样做的功能。@johncode即使我是PHP新手,我也只是根据我的逻辑编写了代码,并提供了,您的代码非常完美,因为它非常干净和简单
Array
(
    [0] => tomato
    [1] => 
    [2] => apple
    [3] => melon
    [4] => cherry
    [5] => 
    [6] => 
    [7] => banana
)
$array = array_values(array_filter($array));
Array
(
    [0] => tomato
    [1] => apple
    [2] => melon
    [3] => cherry
    [4] => banana
)