如何在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
)