Ορισμένα στοιχεία στον πίνακα μου είναι κενές συμβολοσειρές ανάλογα με το τι έχει υποβάλει ο χρήστης. Πρέπει να αφαιρέσω αυτά τα στοιχεία. Έχω αυτό:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
Αλλά δεν λειτουργεί. Το "$$linksArray" εξακολουθεί να έχει κενά στοιχεία. Δοκίμασα επίσης να το κάνω με τη συνάρτηση empty()
, αλλά το αποτέλεσμα είναι το ίδιο.
Καθώς έχετε να κάνετε με έναν πίνακα συμβολοσειρών, μπορείτε απλά να χρησιμοποιήσετε την array_filter()
, η οποία τα χειρίζεται όλα αυτά για εσάς:
print_r(array_filter($linksArray));
Λάβετε υπόψη ότι αν δεν παρέχεται callback, όλες οι καταχωρήσεις του πίνακα που είναι ίσες με FALSE
(δείτε converting to boolean) θα αφαιρεθούν. Έτσι, αν πρέπει να διατηρήσετε στοιχεία που είναι π.χ. ακριβές αλφαριθμητικό '0'
, θα χρειαστείτε ένα προσαρμοσμένο 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 !== ''; }));
$linksArray = array_filter($linksArray);
"Αν δεν παρέχεται callback, όλες οι καταχωρήσεις εισόδου που είναι ίσες με FALSE θα αφαιρεθούν." -- http://php.net/manual/en/function.array-filter.php
foreach($linksArray as $key => $link)
{
if($link === '')
{
unset($linksArray[$key]);
}
}
print_r($linksArray);