Sommige elementen in mijn array zijn lege strings gebaseerd op wat de gebruiker heeft ingediend. Ik moet die elementen verwijderen. Ik heb dit:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
Maar het werkt niet. $linksArray
heeft nog steeds lege elementen. Ik heb ook geprobeerd om het met de empty()
functie te doen, maar het resultaat is hetzelfde.
Omdat je te maken hebt met een array van strings, kun je gewoon array_filter()
gebruiken, die dit allemaal handig voor je afhandelt:
print_r(array_filter($linksArray));
Denk eraan dat als er geen callback wordt meegegeven, alle items van de array die gelijk zijn aan FALSE
(zie converteren naar boolean) zullen worden verwijderd. Dus als je elementen wilt behouden die bijv. de exacte string '0'
zijn, dan heb je een aangepaste callback nodig:
// 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 !== ''; }));
foreach($linksArray as $key => $link)
{
if($link === '')
{
unset($linksArray[$key]);
}
}
print_r($linksArray);