Php 检查数组项是否为空

Php 检查数组项是否为空,php,arrays,Php,Arrays,我有两个阵列: $fields\u data,输出: Array ( [name] => [email] => [phone] => [message] => ) Array ( [0] => name [1] => email [2] => message ) 和$required\u fields\u array,输出: Array ( [name] => [email] => [phone] => [message] =&g

我有两个阵列:

$fields\u data
,输出:

Array ( [name] => [email] => [phone] => [message] => )
Array ( [0] => name [1] => email [2] => message ) 
$required\u fields\u array
,输出:

Array ( [name] => [email] => [phone] => [message] => )
Array ( [0] => name [1] => email [2] => message ) 
$required\u fields\u array
的值是
$fields\u data array
中的项

我需要对照
$fields\u data
检查每个
$required\u fields\u数组
,以检查它们对应的数组项是否为空

我试过:

foreach( $required_fields_array as $key ) 
{                                       
    if ( isset($fields_data[$key]) === false && empty($fields_data[$key]) === true  )       
    {               
        print_r('empty');
    }           
}   
我不明白为什么上面的方法不起作用

谁能给我指一下正确的方向。

试试下面的方法:

$fields_data = Array ( 'name' => '','email' => '','phone' => '','message' => '');
//Added extra element `asd` to show that `isset()` is not required
$required_fields_array = Array ('name','email',' message', 'asd');
foreach( $required_fields_array as $key ) 
{
    if(empty($fields_data[$key]))       
    {               
        print_r('empty');
    }           
}    

删除
isset
==false
等。因为
empty()
也将完成
isset()
的工作。

删除isset部分。定义了一个变量并不意味着它不是空的。你说的是,如果这个值没有设置,它是空的。你可能想要一个手术室。然后您根本不需要
isset
。从isset和empty中删除===false===true,bcoz如果它为空或未设置,您的条件将返回true,并进入ifKeep,就像(isset($fields\u data[$key])&&&!empty($fields\u data[$key]),您的代码如果没有问题otherwise@shashi