2014-12-13 48 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

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