首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从PHP数组中删除NULL、FALSE和'‘,但不能删除0

从PHP数组中删除NULL、FALSE和'‘,但不能删除0
EN

Stack Overflow用户
提问于 2013-01-03 14:22:10
回答 6查看 27.9K关注 0票数 43

我想删除NULLFALSE''的值。

我使用的是array_filter,但它也去掉了0

有什么函数可以做我想做的事吗?

代码语言:javascript
复制
array(NULL,FALSE,'',0,1) -> array(0,1)
EN

回答 6

Stack Overflow用户

发布于 2014-12-16 17:26:47

来自http://php.net/manual/en/function.array-filter.php#111091

如果您想删除NULL、FALSE和空字符串,但保留0值,则可以使用strlen作为回调函数:

代码语言:javascript
复制
array_filter($array, 'strlen');
票数 52
EN

Stack Overflow用户

发布于 2013-01-03 14:26:55

在array_filter中使用自定义回调函数。有关如何使用回调函数,请参阅此示例,摘自PHP手册。示例中的回调函数是基于奇/偶过滤的;您可以编写一个小函数来根据您的需求进行过滤。

代码语言:javascript
复制
<?php
function odd($var)
{
    // returns whether the input integer is odd
    return($var & 1);
}

function even($var)
{
    // returns whether the input integer is even
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?> 
票数 2
EN

Stack Overflow用户

发布于 2013-01-03 14:26:51

检查它是否小于1和大于-1,如果是,则不要删除它...

代码语言:javascript
复制
$arrayValue = (NULL,FALSE,'',0,1);
$newArray = array();
foreach($arrayValue as $value) {
    if(is_int($value) || ($value>-1 && $value <1)) {
        $newArray[] = $value;
    }
}

print_r($newArray);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14134006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档