删除空数组元素

风流意气都作罢 提交于 2019-12-21 19:46:34

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

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

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 = array_filter($data, function ($value) {
  return (!empty($value) || $value === 0 || $value==='0');
});

#4楼

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

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

#5楼

你可以做

array_filter($array)

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

另一个选择是做

array_diff($array, array(''))

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

希望这可以帮助 :)

更新

这是一个例子。

$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和''
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!