Php 检查数组的数组是否为空

Php 检查数组的数组是否为空,php,arrays,Php,Arrays,我得到了以下数组: array(1) { [0]=> array(2) { ["name"]=> string(0) "" ["fistname"]=> NULL } } 如果不是空的,我想处理它。我试过: if (!empty($data->User)) { echo 'filled'; } else { echo 'empty'; } 但这又回来了 填满 在Marcin Orlowski回答后编辑 $user

我得到了以下数组:

array(1) {
  [0]=>
  array(2) {
    ["name"]=>
    string(0) ""
    ["fistname"]=>
    NULL
  }
}
如果不是空的,我想处理它。我试过:

if (!empty($data->User)) {
   echo 'filled';
} else {
   echo 'empty';
}
但这又回来了

填满

在Marcin Orlowski回答后编辑

$user = $data->User();
var_dump($user);
if (!empty($user)) {
   echo 'filled';
} else {
   echo 'empty';
}
显示:

array(1) {
  [0]=>
  array(2) {
    ["name"]=>
    string(0) ""
    ["fistname"]=>
    NULL
  }
}

您的问题不清楚,所以我假设您的
User()
返回您显示的数组。如果是这样,您将错过以下选项:

确定变量是否为空。如果变量不存在或其值等于FALSE,则该变量被视为空

以下值被视为空:

array()(空数组)

这两种情况在你的情况下都不存在,所以一切都是不可能的。出于调试目的,您还可以
var_dump()
查看返回的数据:

$user = $data->User();
var_dump($user);
if (!empty($user) {
   echo 'filled';
} else {
   echo 'empty';
}

据我所知,在您的代码中,$data对象的函数User()返回您提到的数组。如果是这种情况,那么$data->User()(即您的数组)肯定是非空的,因为它有一个条目,即数组

array(2) {
    ["name"]=>
    string(0) ""
    ["fistname"]=>
    NULL
  }
如果要检查“name”和“firstname”属性是否为空,则需要一段如下代码:

if (!empty($data->User[0]['name']) or !empty($data->User[0]['firstname'])) {
   echo 'filled';
} else {
   echo 'empty';
}
或者最好在类中检查它,例如,在类中为$data编写一段这样的代码

public function isEmptyUser() {
    return (empty($this->name) && empty($this->firstname));
}
什么是
$data->User()