从foreach循环输出中排除值

问题描述:

我期望从foreach输出中排除特定值,其输出发生在friend_onefriend_two。我不想从我的查询中排除这个。从foreach循环输出中排除值

排除它在任一friend_onefriend_two发生将是$profile_user参数。我试图做到这一点if(in_array($friend_total_row->friend_one == $profile_user)),但我得到它的错误,再加上它只有friend_one在它。

任何人都有一个想法,我可以做到这一点?

<?php   
    //Friends --- total 
    $friend_status = 2; 
    $friend_sql = " 
     SELECT * 
     FROM friends 
     WHERE (friend_one = :profile_user or friend_two = :profile_user) 
     AND status = :total_status 
    "; 
    $friend_stmt = $con->prepare($friend_sql); 
    $friend_stmt->execute(array(':profile_user' => $profile_user, ':total_status' => $friend_status)); 
    $friend_total_rows = $friend_stmt->fetchAll(PDO::FETCH_ASSOC); 
    $count_total_friend = $friend_stmt->rowCount(); 
?> 
     <div id="friend-list-container"> 
      <div id="friend-list-count">Friends <span class="light-gray"><?php echo $count_total_friend; ?></span></div> 
      <div id="friend-list-image-container"> 
<?php   
    foreach ($friend_total_rows as $friend_total_row) { 
     if(in_array($friend_total_row->friend_one == $profile_user)) { 
      continue; 
     } 
     else { 
     $friend_1 = $friend_total_row['friend_one']; 
     $friend_2 = $friend_total_row['friend_two']; 
     //$friend_status  = $friend_total_row['status']; 
     //$friend_status_date = $friend_total_row['date']; 
     } 
     echo $friend_1 . $friend_2; 
    } 
?> 

我只是想从输出,这是其中X是排除$profile_user。然后我想要显示平方输出。 enter image description here

+1

此行'如果(in_array($ friend_total_row-> friend_one == $ profile_user))'是错误的。你必须用逗号分隔,而不是两个等号。 http://php.net/manual/en/function.in-array.php – 2016-11-28 20:13:26

+0

只是问为什么你不想在查询中排除这个。另外,在目前的设置下,你会得到好友所描述的实例上的重复行,这是你期望的吗? – nerdlyist

+0

@nerdlyist我不想从查询中排除,因为查询是匹配关系。 IE:如果个人资料用户与另一个用户在同一记录中,那就是友谊。在这个输出中,我想排除个人资料用户只显示他们的朋友。 – Paul

更新答案:

foreach ($friend_total_rows as $friend_total_row) { 
    $friend_1 = $friend_total_row['friend_one']; 
    $friend_2 = $friend_total_row['friend_two']; 

    if($friend_1 !== $profile_user) { 
     echo $friend_1; 
    } 

    if($friend_2 !== $profile_user) { 
     echo $friend_2; 
    } 
} 
+0

你给出的第一个例子是给出了' - >'的错误,第二个'in_array'例子给出了'注意:试图获取非对象的属性'错误。 – Paul

+0

对,请参阅我的更新:) – Max

+0

对于数组 - “解析错误:语法错误,意外'$ friend_total_row'(T_VARIABLE),期待']'...比较不会给出括号'[' 。 – Paul