根据用户提交的内容,我的数组中的一些元素是空字符串。我需要删除这些元素。我有这个:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
但它不起作用。 $linksArray
仍然有空元素。我也尝试过使用 empty()
函数,但结果是一样的。
最佳答案
在处理字符串数组时,您可以简单地使用 array_filter()
,它可以方便地为您处理所有这些:
print_r(array_filter($linksArray));
请记住,如果没有提供回调,所有等于 FALSE
的数组条目(请参阅 converting to boolean )都将被删除。因此,如果您需要保留确切字符串 '0'
的元素,则需要自定义回调:
// PHP 7.4 and later
print_r(array_filter($linksArray, fn($value) => !is_null($value) && $value !== ''));
// PHP 5.3 and later
print_r(array_filter($linksArray, function($value) { return !is_null($value) && $value !== ''; }));
// PHP < 5.3
print_r(array_filter($linksArray, create_function('$value', 'return $value !== "";')));
注意:如果需要在删除空元素后重新索引数组,请使用:$linksArray = array_values(array_filter($linksArray));
关于php - 删除空数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3654295/