2017-10-10 2 views
-3

hat Ich habe ein Array wie folgt aus:PHP Such-Array, die einen bestimmten Schlüssel

array { 
    ["MASTERKEY"]=> "SECONDKEY1, SECONDKEY2, SECONDKEY3, SECONDKEY4" 
    ["OTHERKEY"]=> "SECONDKEY1, SECONDKEY2, SECONDKEY3, SECONDKEY4" 
} 

Und ich habe diese Funktion [Beispiel nur]:

function findbothkeys() { 
     $masterkey= 'MASTERKEY'; 
     $secondkey= 'SECONDKEY2'; 


     if (array_key_exists($masterkey, $array)) { 
      echo 'Yes ' . $masterkey. ' found'; 
      if (in_array($secondkey, $array[$masterkey])) { 
       echo 'Yes' . $secondkey. ' found'; 
      } 
      else { 
       echo 'NO' . $secondkey. ' not found'; 
      } 
     } 
     else { 
      echo 'NO' . $masterkey. ' not found'; 
     } 
} 

Das, was ich erreichen will ist, dass nachdem die Zeichenfolge $masterkey als Schlüssel dieses Arrays gefunden wurde -> sollte die nächste Suche (in_array) nur in dem Wert von diesem durchgeführt werden. Nicht in den anderen Schlüsselwerten.

Antwort

1

Die Funktion in_array erwartet, dass das zweite Argument ein Array ist, aber in Ihrem Fall ist es eine Zeichenfolge.

Eine Möglichkeit, dies zu lösen, ist die Zeichenfolge in ein Array mit explode zu drehen:

in_array($secondkey, explode(", ", $array[$masterkey])) 
+0

Vielen Dank, die einwandfrei funktioniert! – LexLusa

Verwandte Themen