Alcuni elementi nel mio array sono stringhe vuote in base a ciò che l'utente ha inviato. Ho bisogno di rimuovere questi elementi. Ho questo:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
Ma non funziona. $linksArray
ha ancora elementi vuoti. Ho anche provato a farlo con la funzione empty()
, ma il risultato è lo stesso.
Dato che avete a che fare con un array di stringhe, potete semplicemente usare array_filter()
, che gestisce convenientemente tutto questo per voi:
print_r(array_filter($linksArray));
Tenete a mente che se non viene fornito alcun callback, tutte le voci dell'array uguali a FALSE
(vedi converting to boolean) verranno rimosse. Quindi, se hai bisogno di preservare elementi che sono ad esempio la stringa esatta '0'
, avrai bisogno di una callback personalizzata:
// 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);