Jotkin elementit ovat tyhjiä merkkijonoja sen perusteella, mitä käyttäjä on lähettänyt. Minun on poistettava nämä elementit. Minulla on tämä:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
Mutta se ei toimi. $linksArray
sisältää edelleen tyhjiä elementtejä. Olen myös yrittänyt tehdä sen empty()
-funktiolla, mutta tulos on sama.
Koska kyseessä on merkkijonojen joukko, voit yksinkertaisesti käyttää array_filter()
, joka hoitaa kaiken tämän kätevästi puolestasi:
print_r(array_filter($linksArray));
Muista, että jos mitään takaisinkutsua ei anneta, kaikki FALSE
:n (ks. converting to boolean) arvoiset merkinnät poistetaan. Jos siis haluat säilyttää elementit, jotka ovat esim. tarkka merkkijono '0'
, tarvitset mukautetun callbackin:
// 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);