2017-10-12 1 views
-1

Ich habe zwei Arrays:prüft Array-Element leer ist

$fields_data, die Ausgänge:

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

und $required_fields_array, die Ausgänge:

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

Die Werte von $required_fields_array, sind Elemente, in der $fields_data array.

Ich muss jedes der $required_fields_array gegen die $fields_data überprüfen, um zu überprüfen, ob das Array-Element, das sie entsprechen, leer ist.

Ich habe versucht:

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

Ich kann nicht sehen, warum über die nicht funktioniert.

Kann mir bitte jemand in die richtige Richtung zeigen.

+2

Den Isset-Teil entfernen. Die Tatsache, dass eine Variable definiert ist, bedeutet nicht, dass sie nicht leer ist. – Akintunde007

+3

Sie sagen * wenn der Wert nicht gesetzt ist __and__ ist er leer *. Sie möchten wahrscheinlich ein * oder * dort. Und dann brauchst du das "isset" überhaupt nicht. – deceze

+0

Entfernen === false === true von beiden isset und leer, bcoz, wenn es entweder leer oder nicht gesetzt ist, wird Ihre Bedingung wahr zurückgeben und es geht, wenn – shashi

Antwort

1

Versuchen Sie Folgendes:

$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'); 
    }   
}  

Entfernen Sie die isset und === false usw. Denn empty() wird auch die isset() ‚s Job.

Verwandte Themen