2017-10-12 170 views
-1

我有兩個陣列:檢查是否數組項是空的

$fields_data,其輸出:

Array ([name] => [email] => [phone] => [message] =>) 

$required_fields_array,其輸出:

Array ([0] => name [1] => email [2] => message) 

$required_fields_array的值,是項在$fields_data array

我需要檢查每個$required_fields_array$fields_data,以檢查它們對應的數組項是否爲空。

我曾嘗試:

foreach($required_fields_array as $key) 
{          
    if (isset($fields_data[$key]) === false && empty($fields_data[$key]) === true )  
    {    
     print_r('empty'); 
    }   
} 

我不明白爲什麼上面是行不通的。

任何人都可以請指出我在正確的方向。

+2

刪除isset部分。變量被定義的事實並不意味着它不是空的 – Akintunde007

+3

你說*如果該值沒有設置__和___它是空的*。你可能需要一個*或*。然後你根本不需要'isset'。 – deceze

+0

Remove === false === true isset isset and empty,bcoz if empty or not set your condition will return true and it goes in if – shashi

回答

1

嘗試以下操作:

$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()的工作了。