我有一个数组
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值。
答案 0 :(得分:11)
注意: - 我想您要从数组中删除NULL
以及空字符串/值''
。 (我从你想要的输出中理解的)
您必须使用 array_filter() strlen()
array_filter($array,'strlen');
输出: - https://eval.in/926585 AND https://eval.in/926595 AND https://eval.in/926602
参考: -
答案 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
)