【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
根据用户提交的内容,数组中的某些元素是空字符串。 我需要删除那些元素。 我有这个:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
但这是行不通的。 $linksArray
仍然具有空元素。 我也尝试过使用empty()
函数,但是结果是一样的。
#1楼
$myarray = array_filter($myarray, 'strlen'); //removes null values but leaves "0"
$myarray = array_filter($myarray); //removes all null values
#2楼
function trim_array($Array)
{
foreach ($Array as $value) {
if(trim($value) === '') {
$index = array_search($value, $Array);
unset($Array[$index]);
}
}
return $Array;
}
#3楼
我必须这样做以保持(string)0的数组值
$url = array_filter($data, function ($value) {
return (!empty($value) || $value === 0 || $value==='0');
});
#4楼
我使用以下脚本从数组中删除空元素
for ($i=0; $i<$count($Array); $i++)
{
if (empty($Array[$i])) unset($Array[$i]);
}
#5楼
你可以做
array_filter($array)
array_filter:“如果未提供回调,则将删除所有等于FALSE的输入项。” 这意味着值NULL,0,'0','',FALSE,array()的元素也将被删除。
另一个选择是做
array_diff($array, array(''))
这将删除值为NULL,''和FALSE的元素。
希望这可以帮助 :)
更新
这是一个例子。
$a = array(0, '0', NULL, FALSE, '', array());
var_dump(array_filter($a));
// array()
var_dump(array_diff($a, array(0))) // 0 / '0'
// array(NULL, FALSE, '', array());
var_dump(array_diff($a, array(NULL))) // NULL / FALSE / ''
// array(0, '0', array())
总结一下:
- 0或'0'将删除0和'0'
- NULL,FALSE或''将删除NULL,FALSE和''
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3145758