毫无疑问,这里已经讨论了几百万次,是的,我再次发布与之相关的内容。
我有以下代码。
$address = "#&#&#&";
$addr = explode("#&",$address);
它返回
Array
(
[0] =>
[1] =>
[2] =>
[3] =>
)
现在价值是空的。所以我正在检查。
If(!empty($addr))
{
echo 'If print then something wrong';
}
它仍然打印出那条线。没有沮丧但很快就会
答案 0 :(得分:7)
运行array_filter()删除空条目,然后检查数组本身是否为空()
if (empty(array_filter($addr)))
请注意,没有回调的array_filter()将删除任何" falsey"条目,包括0
答案 1 :(得分:2)
要检查数组是否不包含值,可以循环数组并取消设置no值,然后检查数组是否为空,如下所示。
$addresses = "#&#&#&";
$addresses = explode("#&", $addresses);
foreach ( $addresses as $key => $val ) {
if ( empty($val) ) {
unset($addresses[$key]);
}
}
if ( empty($addresses) ) {
echo 'there are no addresses';
}
else {
// do something
}
答案 2 :(得分:1)
这不是一个空数组,空数组没有元素,你有四个元素,每个元素都是一个空字符串,这就是empty
返回false
的原因。
你必须迭代元素并测试它们是否都是空的,比如
$empty=True;
foreach ($addr as $el){
if ($el){
$empty=False;
break;
}
}
if (!$empty) echo "Has values"; else echo "Empty";
答案 3 :(得分:1)
您正在检查数组中是否包含元素。你想要做的是检查数组中的元素是否为空字符串。
foreach ($addr as $item) {
if (empty($item)) {
echo 'Empty string.';
} else {
echo 'Value is: '.item;
}
}
答案 4 :(得分:0)
数组不为空,它有4个项目。这是一个可能的解决方案:
$hasValues = false;
foreach($addr as $v){
if($v){
$hasValues = true;
break;
}
}
if(!$hasValues){
echo 'no values';
}