Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中检查数组是否为空_Php_Arrays - Fatal编程技术网

在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。我更愿意在完成循环之前进行检查。