Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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_Multidimensional Array - Fatal编程技术网

php如何在多维数组中同时检查空数组和无值键

php如何在多维数组中同时检查空数组和无值键,php,multidimensional-array,Php,Multidimensional Array,在上面的数组中,“physics”元素在“mohammad”中有值数组,“qadir”中有空数组,“Zara”中有索引[0],没有值 我们如何检查第一个索引的“物理”是空数组还是空值 我在if循环中进行了如下尝试: $marks=array( "mohammad" => array ( "physics" => array([0]=>35,[1]=>45) "maths" => 3

在上面的数组中,“physics”元素在“mohammad”中有值数组,“qadir”中有空数组,“Zara”中有索引[0],没有值

我们如何检查第一个索引的“物理”是空数组还是空值

我在if循环中进行了如下尝试:

$marks=array( 
            "mohammad" => array (
               "physics" => array([0]=>35,[1]=>45)
               "maths" => 30,   
               "chemistry" => 39
            ),

            "qadir" => array (
               "physics" => array(),
               "maths" => 32,
               "chemistry" => 29
            ),

            "zara" => array (
               "physics" => array([0]=>),
               "maths" => 22,
               "chemistry" => 39
            )
         );
上面的代码对'qadir'很有效,但对'Zara'无效。我希望同时检查这两个案例

请提出您的想法。

使用。这将从数组中删除所有空值,从而正确检查空条件。比如:

$name ='qadir'
if(!empty($marks[$name]['physics'])){//do here}
使用。这将从数组中删除所有空值,从而正确检查空条件。比如:

$name ='qadir'
if(!empty($marks[$name]['physics'])){//do here}
试试这个:

$filteredArray = array_filter($marks[$name]['physics']);
if(!empty($filteredArray)) {//do here}
试试这个:

$filteredArray = array_filter($marks[$name]['physics']);
if(!empty($filteredArray)) {//do here}

对空签入数组使用下面的代码

if (!empty($marks[$name]['physics']) || !isset($marks[$name]['physics'][0])) {

对空签入数组使用下面的代码

if (!empty($marks[$name]['physics']) || !isset($marks[$name]['physics'][0])) {

,工作正常..但在我的php编辑器中,只有在PHP5.5中才允许在空中显示错误
任意表达式。但我的php版本是5.5.12Hi..工作正常..我有一个问题,为什么不能确定是否使用像
array\u filter($marks)这样的整个数组进行筛选
.PHP手册上说
为空-确定**变量**是否为空
并且数组过滤器是函数调用而不是变量-如果这解决了您的问题,请接受此答案,它工作正常..但在我的php编辑器中,只有在PHP5.5
中才允许以空显示错误
任意表达式。但我的php版本是5.5.12Hi..工作正常..我有一个问题:如果使用像
array\u filter($marks)这样的整个数组进行筛选,为什么不起作用
.PHP手册上说
为空-确定**变量**是否为空
并且数组过滤器是函数调用而不是变量-如果这解决了您的问题,请接受此答案