Niektóre elementy w mojej tablicy są pustymi ciągami znaków na podstawie tego, co użytkownik przesłał. Muszę usunąć te elementy. Mam to:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
Ale to'nie działa. Tablica $linksArray
wciąż ma puste elementy. Próbowałem również zrobić to za pomocą funkcji empty()
, ale wynik jest taki sam.
Ponieważ masz do czynienia z tablicą łańcuchów, możesz po prostu użyć array_filter()
, który wygodnie obsłuży to wszystko za Ciebie:
print_r(array_filter($linksArray));
Pamiętaj, że jeśli nie podano wywołania zwrotnego, wszystkie wpisy tablicy równe FALSE
(zobacz konwersja na boolean) zostaną usunięte. Więc jeśli potrzebujesz zachować elementy, które są np. dokładnym ciągiem '0'
, będziesz potrzebował niestandardowego wywołania zwrotnego:
// 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);