Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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 - Fatal编程技术网

删除PHP数组中的空值

删除PHP数组中的空值,php,Php,我有一个数组 array (size=7) 0 => string '2' 1 => string '' 2 => string '' 3 => string '0' 4 => string '' 5 => string '' 6 => string '2.5' 我用过:- array\u filter() 删除空值并返回 Array ( [0] => 2 [6] => 2 ) array\u filter()删除空值和“0

我有一个数组

array (size=7)
0 => string '2' 
1 => string '' 
2 => string '' 
3 => string '0' 
4 => string '' 
5 => string '' 
6 => string '2.5' 
我用过:-

array\u filter()

删除空值并返回

Array ( [0] => 2 [6] => 2 )
array\u filter()
删除空值和“0”值

PHP中的任何内置函数都只能删除空值。

注意:-我认为您希望从数组中删除
NULL
以及空字符串/值
'
。(我从您期望的输出中了解)

您必须将用于

输出:-

引用:-

如果您只需要可以用作回调的数值

演示

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

从数组中删除空值
$array = array("apple", "", 2, null, -5, "orange", 10, false, "");

var_dump($array);

echo "<br>";



// Filtering the array

$result = array_filter($array);                 

var_dump($result);

?>
$array=array(“苹果”,2,空,-5,“橙色”,10,假,”;
变量转储($数组);
回声“
”; //过滤阵列 $result=array\u filter($array); var_dump($结果); ?>
在php中,
0
'
都被认为是错误的,因此将被数组过滤器删除,而不需要特定的回调。上面使用
'strlen'
的建议也是错误的,因为它还删除了一个与
NULL
不同的空字符串。要按要求仅删除
NULL
值,可以使用闭包作为
array\u filter()
的回调,如下所示:

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

您可以删除空值,然后同时使用array_values()和array_filter()函数对数组元素重新编制索引,如下所示:

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

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

array\u filter()
一起使用的代码是什么?
array\u filter($array,'strlen')
代码是worked@Athi-这也将删除空字符串,这与
NULL
不同。您可以使用闭包作为回调函数来控制过滤内容。@AlivetoDie--Anantsingh您的代码工作正常。我想删除空值“我使用
array\u filter()
删除空值”--您的输入数组不包含
null
值。它包含空字符串(
'
),它们与
NULL
不同。表示没有任何值,空字符串是长度
0
的字符串。它们是完全不同的概念。您的编码不起作用。它返回数组中的所有值。@Athi-这是因为您问题中的数组不包含
NULL
值。这不是您的问题:)甚至我还以为OP说PHP中的任何内置函数都只能删除NULL值。直到一个编辑同意。我理解,虽然只有代码的答案可以解决问题,但一些解释将有助于理解此解决方案以及如何将其应用于类似问题。虽然此代码片段可能是解决方案,但确实有助于提高您的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。不带回调的数组_筛选器将删除任何可由PHP强制转换为false的值,例如“”、0、、false、null、[]。您的声明“从数组中删除空值”是错误的文档,因此在提供正确的文档之前,我将添加一个负数。除了
null
'
$array = array("apple", "", 2, null, -5, "orange", 10, false, "");

var_dump($array);

echo "<br>";



// Filtering the array

$result = array_filter($array);                 

var_dump($result);

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