Algunos elementos de mi matriz son cadenas vacías basadas en lo que el usuario ha enviado. Necesito eliminar esos elementos. Tengo esto:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
Pero no funciona. $linksArray
sigue teniendo elementos vacíos. También he intentado hacerlo con la función empty()
, pero el resultado es el mismo.
Como se trata de una matriz de cadenas, puede utilizar simplemente array_filter()
, que se encarga de todo esto convenientemente:
print_r(array_filter($linksArray));
Tenga en cuenta que si no se suministra una devolución de llamada, todas las entradas del array iguales a FALSE
(ver conversión a booleano) serán eliminadas. Por lo tanto, si necesita conservar los elementos que son, por ejemplo, la cadena exacta '0
, necesitará una devolución de llamada personalizada:
// 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);