删除空数组元素

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

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

但这是行不通的。 $linksArray仍然具备空元素。 我也尝试过使用empty()函数,可是结果是同样的。 函数


#1楼

$myarray = array_filter($myarray, 'strlen');  //removes null values but leaves "0"
    $myarray = array_filter($myarray);            //removes all null values

#2楼

function trim_array($Array)
{
    foreach ($Array as $value) {
        if(trim($value) === '') {
            $index = array_search($value, $Array);
            unset($Array[$index]);
        }
    }
    return $Array;
}

#3楼

我必须这样作以保持(string)0的数组值 url

$url = array_filter($data, function ($value) {
  return (!empty($value) || $value === 0 || $value==='0');
});

#4楼

我使用如下脚本从数组中删除空元素 spa

for ($i=0; $i<$count($Array); $i++)
  {
    if (empty($Array[$i])) unset($Array[$i]);
  }

#5楼

你能够作 code

array_filter($array)

array_filter:“若是未提供回调,则将删除全部等于FALSE的输入项。” 这意味着值NULL,0,'0','',FALSE,array()的元素也将被删除。 rem

另外一个选择是作 字符串

array_diff($array, array(''))

这将删除值为NULL,''和FALSE的元素。 string

但愿这能够帮助 :) io

更新

这是一个例子。 function

$a = array(0, '0', NULL, FALSE, '', array());

var_dump(array_filter($a));
// array()

var_dump(array_diff($a, array(0))) // 0 / '0'
// array(NULL, FALSE, '', array());

var_dump(array_diff($a, array(NULL))) // NULL / FALSE / ''
// array(0, '0', array())

总结一下:

  • 0或'0'将删除0和'0'
  • NULL,FALSE或''将删除NULL,FALSE和''
相关文章
相关标签/搜索