删除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
)