删除PHP数组中的Null值

时间:2017-12-28 06:13:55

标签: php

我有一个数组

array (size=7)
0 => string '2' 
1 => string '' 
2 => string '' 
3 => string '0' 
4 => string '' 
5 => string '' 
6 => string '2.5' 

我用过: -

array_filter()

删除空值并返回

Array ( [0] => 2 [6] => 2 )

array_filter()删除空值以及'0'值。

PHP中提供了任何内置函数,仅用于删除NULL值。

5 个答案:

答案 0 :(得分:11)

注意: - 我想您要从数组中删除NULL以及空字符串/值''。 (我从你想要的输出中理解的)

您必须使用 array_filter() strlen()

array_filter($array,'strlen');

输出: - https://eval.in/926585 AND https://eval.in/926595 AND https://eval.in/926602

参考: -

PHP: array_filter - Manual

PHP: strlen - Manual

答案 1 :(得分:2)

在PHP中,0''都被认为是假的,因此在没有特定回调的情况下,数组过滤器会将其删除。上面使用'strlen'的建议也是错误的,因为它还删除了一个与NULL不同的空字符串。要按照您的要求仅删除NULL个值,您可以使用闭包作为array_filter()的回调,如下所示:

array_filter($array, function($v) { return !is_null($v); });

答案 2 :(得分:1)

function myFilter($var){
  return ($var !== NULL && $var !== FALSE && $var !== '');
}

$res = array_filter($yourArray, 'myFilter');

如果您只需要数值,可以使用is_numeric作为回调

<强>演示

$res = array_filter($values, 'is_numeric');

答案 3 :(得分:0)

从数组中删除空值     

$array = array("apple", "", 2, null, -5, "orange", 10, false, "");

var_dump($array);

echo "<br>";



// Filtering the array

$result = array_filter($array);                 

var_dump($result);

?>

答案 4 :(得分:0)

You can remove empty value and then re-index the array elements by using array_values() and array_filter() function together as such:

$arr = array("PHP", "HTML", "CSS", "", "JavaScript", null, 0);
print_r(array_values(array_filter($arr)));

Output:

Array
(
    [0] => PHP
    [1] => HTML
    [2] => CSS
    [3] => JavaScript
)