删除空的数组元素

根据用户提交的内容,数组中的一些元素是空字符串。 我需要删除这些元素。 我有这个:

foreach($linksArray as $link)
{
    if($link == '')
    {
        unset($link);
    }
}
print_r($linksArray);

但它不起作用, $linksArray仍然有空元素。 我也试着用empty()函数来做,但结果是一样的。


在处理字符串数组时,可以简单地使用array_filter() ,它可以方便地处理所有这些事情:

print_r(array_filter($linksArray));

请记住, 如果没有提供回调,则数组的所有条目等于FALSE (请参阅转换为布尔值)将被删除。 所以,如果你需要保存一些精确的字符串为'0'元素,你需要一个自定义的回调函数:

// PHP < 5.3
print_r(array_filter($linksArray, create_function('$value', 'return $value !== "";')));

// PHP 5.3 and later
print_r(array_filter($linksArray, function($value) { return $value !== ''; }));

你可以使用array_filter去除空元素:

$emptyRemoved = array_filter($linksArray);

如果你的数组中有(int) 0 ,你可以使用下面的代码:

$emptyRemoved = remove_empty($linksArray);

function remove_empty($array) {
  return array_filter($array, '_remove_empty_internal');
}

function _remove_empty_internal($value) {
  return !empty($value) || $value === 0;
}

编辑:也许你的元素本身不是空的,但包含一个或多个空格...你可以使用以下之前使用array_filter

$trimmedArray = array_map('trim', $linksArray);

$linksArray = array_filter($linksArray);

“如果没有提供回调,则所有输入等于FALSE的条目都将被删除。” - http://php.net/manual/en/function.array-filter.php

链接地址: http://www.djcxy.com/p/75177.html

上一篇: Remove empty array elements

下一篇: Unexpected character '$'