刪除空數組元素

根據用戶提交的內容,數組中的某些元素是空字符串。 我須要刪除那些元素。 我有這個: 數組

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和''
相關文章
相關標籤/搜索