2014-12-13 49 views
0

兩個陣列錯誤我有一個數組,其中包含我的朋友的所有細節(通過MySQL全選)和另一個數組,其中包含團隊中所有人的所有細節。現在,我想將所有朋友都顯示在HTML選擇列表中,但我不希望已經加入「團隊」的朋友出現在選擇列表中。錯誤比較使用in_array()

我試過使用in_array()但我沒有得到任何結果。儘管其中一些朋友已經是「團隊」的一員,但我所有的朋友仍然出現在選擇名單中。

這是代碼:

<form action="tmembers.php" method="post">  
    <select multiple="true" name="members[]" val id="member" class="">  
     <?php 
     while($record5 = $stmt5->fetch()){  
      $friends[] = $record5;  //array containing details of all friends 
     } 
     while($record6 = $stmt6->fetch()){ 
      $membersarray[] = $record6; //array containing details of team members 
     } 

     foreach ($friends AS $t) { 
      if (in_array($t, $membersarray)) { 
       continue;    
      } 
     ?> 

     <option value="<?php echo $t['id'] ; ?>"> 
      <?php echo $t['surname'];?> <?php echo $t['firstname'] ; ?> 
     </option> 

     <?php } 
     ?> 

     </select> 
     </br> 
     <input type="submit" value="Send Invite" name="invite" class=""/> 
    </form> 
+0

如果成員和朋友來自數據庫,爲什麼不使用ONE SQL語句執行所有選擇邏輯? – Konstantin 2014-12-13 21:21:09

+0

查詢應該是什麼樣子? – ADS 2014-12-13 22:25:14

+0

我不知道你的數據是什麼樣子,我應該怎麼知道。就我所知,它可以像'SELECT * FROM PEOPLE WHERE is_member = 0'一樣簡單。你的SQL技能有多好? – Konstantin 2014-12-13 22:26:35

回答

0

使用此

for($i=0;$i<count($friends);$i++) { 
    if (in_array($friends[$i], $membersarray)) { 
     continue;    
    } 
} 
+0

'for($ i = 0; $ i $ t ){'但是後者看起來更好:) – Konstantin 2014-12-13 21:23:42

+0

我照你所說的做了,並嘗試在選擇列表中顯示朋友,但所有的朋友仍然顯示儘管有些朋友在團隊表中。 echo「」; – ADS 2014-12-13 23:01:11

0
$arraysAreEqual = ($a == $b); // TRUE if $a and $b have the same key/value pairs. 
$arraysAreEqual = ($a === $b); // TRUE if $a and $b have the same key/value pairs in the same order and of the same types. 

Array Operators

不平等運營商!=而非身份運營商!==匹配平等 操作==和身份的運營商===