2016-04-21 8 views
0

Ich habe ein Array $data['permissions'], die wie folgt aussieht: Array ([0] => 2 [1] => 11) und meine in_array Funktion schrieb ich nicht funktionieren. Hier ist der Code:in_array ist'nicht einen Wert zu finden

$data['permissions'] = $auth_user->getPermissions(); 
$stmt = $auth_user->runQuery("SELECT * FROM words;"); 
$stmt->execute(); 
while($wordsRow=$stmt->fetch(PDO::FETCH_ASSOC)){ 
         echo $wordsRow['subcategory_id'];?> 
        <tr> 
         <?php 
         if($wordsRow['user_id'] == $_SESSION['user_session'] || 
         in_array(array($wordsRow['subcategory_id']), $data['permissions'])){ ?> 
          <td><?php echo $wordsRow['name'];?></td> 
          <td><?php echo $wordsRow['subcategory_id'];?></td> 
          <?php 
         } 
         ?> 
        </tr> 
        <?php 
        } 

$wordsRow['user_id'] == $_SESSION['user_session'] in if funktioniert gut, aber in_array Funktion in if nicht den Wert zu finden, die tatsächlich in diesem Array ist.

echo $wordsRow['subcategory_id']; 

im while loop zeigt: 11 2 11. Wo ist das Problem?

Antwort

2

Der erste Parameter zu in_array sollte ein Wert sein, der gefunden werden muss, und Sie übergeben ihm ein Array innerhalb eines eindimensionalen Arrays, das einfach nicht funktionieren wird.

Versuchen Sie, diese zu ändern:

in_array(array($wordsRow['subcategory_id']), $data['permissions']) 

Um so etwas wie dieses:

in_array($wordsRow['subcategory_id'], $data['permissions']) 
+0

Wow ich total verpasst. Wunder, warum es so war ... – AbraCadaver

+0

Ja. Ich glaube, das habe ich übersehen, weil ich Teile des Codes kopiert habe. Nur neu. Vielen Dank – xxyoyoxx