Някои елементи в масива ми са празни низове в зависимост от това какво е подал потребителят. Трябва да премахна тези елементи. Имам това:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
Но това не работи. $linksArray
все още има празни елементи. Опитах се да го направя и с функцията empty()
, но резултатът е същият.
Тъй като имате работа с масив от низове, можете просто да използвате array_filter()
, който удобно се справя с всичко това вместо вас:
print_r(array_filter($linksArray));
Имайте предвид, че ако не е предоставена обратна връзка, всички записи на масива, равни на FALSE
(вж. конвертиране в булеви), ще бъдат премахнати. Така че, ако трябва да запазите елементи, които са т.е. точен низ '0'
, ще ви е необходимо потребителско обратно извикване:
// 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 !== ''; }));
$linksArray = array_filter($linksArray);
"Ако не е предоставена обратна връзка, всички записи на вход, равен на FALSE, ще бъдат премахнати." -- http://php.net/manual/en/function.array-filter.php
foreach($linksArray as $key => $link)
{
if($link === '')
{
unset($linksArray[$key]);
}
}
print_r($linksArray);