在php中检查数组是否为空
毫无疑问,这里已经讨论过几百万次了,是的,我再次发布了一些与之相关的东西 我有以下代码在php中检查数组是否为空,php,arrays,Php,Arrays,毫无疑问,这里已经讨论过几百万次了,是的,我再次发布了一些与之相关的东西 我有以下代码 $address = "#&#&#&"; $addr = explode("#&",$address); 它回来了 Array ( [0] => [1] => [2] => [3] => ) 现在这些值是空的,所以我在做一个检查 If(!empty($addr)) { echo 'If print then s
$address = "#&#&#&";
$addr = explode("#&",$address);
它回来了
Array
(
[0] =>
[1] =>
[2] =>
[3] =>
)
现在这些值是空的,所以我在做一个检查
If(!empty($addr))
{
echo 'If print then something wrong';
}
这不是一个空数组,空数组没有元素,你有四个元素,每个元素都是一个空字符串,这就是为什么empty返回false 您必须迭代元素并测试它们是否都为空,如
$empty=True;
foreach ($addr as $el){
if ($el){
$empty=False;
break;
}
}
if (!$empty) echo "Has values"; else echo "Empty";
数组不是空的,它有4项。下面是一个可能的解决方案:
$hasValues = false;
foreach($addr as $v){
if($v){
$hasValues = true;
break;
}
}
if(!$hasValues){
echo 'no values';
}
您正在检查数组中是否包含元素。您要做的是检查数组中的元素是否为空字符串
foreach ($addr as $item) {
if (empty($item)) {
echo 'Empty string.';
} else {
echo 'Value is: '.item;
}
}
运行以删除空条目,然后检查数组本身是否为空
if (empty(array_filter($addr)))
请注意,不带回调的array_filter将删除任何虚假条目,包括0。要检查数组是否包含任何值,可以循环数组并取消设置这些值,然后检查数组是否为空,如下所示
$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
}
不起作用。因为你没有检查它是否是空的。太棒了!!太棒了…这就是我想要的。非常感谢。我想会有一个额外的结束括号:p…3分钟,然后接受:你可能会对国旗感兴趣。它基于正则表达式拆分字符串,并允许您使用所述选项丢弃空片段。谢谢Jake。我更愿意在完成循环之前进行检查。