Fjern tomme array-elementer

Nogle elementer i mit array er tomme strenge baseret på det, brugeren har indsendt. Jeg har brug for at fjerne disse elementer. Jeg har dette:

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

Men det virker ikke. $linksArray har stadig tomme elementer. Jeg har også prøvet at gøre det med funktionen empty(), men resultatet er det samme.

Løsning

Da du har at gøre med et array af strenge, kan du blot bruge array_filter(), som bekvemt håndterer alt dette for dig:

print_r(array_filter($linksArray));

Husk på at hvis der ikke er angivet nogen callback, vil alle poster i array lig med FALSE (se konvertering til boolean) blive fjernet. Så hvis du har brug for at bevare elementer, der f.eks. er nøjagtig streng '0', skal du bruge en brugerdefineret callback:

// 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 !is_null($value) && $value !== ''; }));
Kommentarer (13)
$linksArray = array_filter($linksArray);

"Hvis der ikke er angivet nogen callback, vil alle poster med input lig med FALSE blive fjernet." -- http://php.net/manual/en/function.array-filter.php

Kommentarer (3)
foreach($linksArray as $key => $link) 
{ 
    if($link === '') 
    { 
        unset($linksArray[$key]); 
    } 
} 
print_r($linksArray); 
Kommentarer (3)