2016-09-19 1 views
0
$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 
      ) 
     ); 

In der obigen Array hat "Physik" -Element Array von Werten in "Mohammad", leere Array in "Qadir" und in "Zara" hat es index [0] ohne Wert.php-wie überprüft man gleichzeitig leere Array und Schlüssel ohne Wert in mehrdimensionalen Array

Wie können wir prüfen, ob "Physik" ein leeres Array oder ein leerer Wert für den ersten Index ist?

Ich habe versucht, wenn Schleife wie folgt:

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

Der obige Code in Ordnung für ‚Qadir‘ arbeiten, aber nicht für ‚Zara'.I wünsche beiden Fälle zur gleichen Zeit zu überprüfen.

Bitte schlagen Sie Ihre Gedanken vor.

Antwort

3

Verwenden Sie array_filter(). Dadurch werden alle leeren Werte aus dem Array entfernt, die den leeren Zustand korrekt überprüfen. Etwas wie:

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

, funktioniert es fine..but in meinem PHP-Editor Fehler es zeigt ' Arbitrary Ausdrücke in leer ist nur in PHP 5.5 erlaubt. Aber meine PHP-Version ist 5.5.12 – Nithya

+0

@Nithya Überprüfen Sie die aktualisierte Antwort, sollte jetzt funktionieren. – jitendrapurohit

+0

@Nithya Funktioniert die aktualisierte Antwort? – jitendrapurohit

1

Try this:

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

Es tut mir leid..dies funktioniert nicht ..; - ( – Nithya

0

Verwenden unten Code für NULL-Prüfung in Array

if(!empty($marks[$name]['physics']){ 
    if(!in_array(null, $haystack, true)){ 
    //do here 
    } 
} 
Verwandte Themen