我正在寻找一种从数组中删除空元素的方法。 我知道array_filter()会删除所有空值。
问题是我认为只包含空格,制表符和换行符的字符串也是空的。
那么在这种情况下最好用的是什么?
答案 0 :(得分:2)
在trim()
的回调中使用array_filter
:
$array = array_filter($array, function ($v) { return (bool)trim($v); });
或更短的版本(使用隐式类型转换):
$array = array_filter($array, 'trim');
答案 1 :(得分:0)
bool empty(混合$ var)
确定变量是否为空。变量是 如果它不存在或者其值等于FALSE则认为为空。 如果变量不存在,empty()不会生成警告。
应该做的事情:
foreach($array as $key => $stuff)
{
if(empty(stuff))
{
unset($array[$key]);
}
}
$array = array_values($array );// to reinstate the numerical indexes.
答案 2 :(得分:0)
我知道这可能回答晚了,但这是针对那些对解决此问题感兴趣的人。这是我自己的方式。
function my_array_filter($my_array)
{
$final_array = array();
foreach ( $my_array as $my_arr )
{
//check if array element is not empty
if (!empty($my_arr)) $final_array[] = $my_arr;
}
//remove duplicate elements
return array_unique( $final_array );
}
希望有人觉得这有用。