2016-11-28 4 views
1

私のforeach出力から特定の値を除外する場合は、friend_oneまたはfriend_twoのいずれかになります。私はこれを私の質問から除外したくありません。foreachループ出力から値を除外します

除外するパラメータは$profile_userで、friend_oneまたはfriend_twoのいずれかになります。私はこれをやろうとしましたが、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))'間違っています。 2つの等号記号ではなく、カンマで区切る必要があります。 http://php.net/manual/en/function.in-array.php –

+0

なぜこれをクエリで除外したくないのか尋ねるだけです。また、現在の設定では、インスタンス上に重複した行が表示されるため、友人のプロファイルはあなたが期待するものですか? – nerdlyist

+0

@nerdlyistクエリがリレーションシップと一致しているため、クエリから除外したくありません。 IE:プロファイルユーザーが別のユーザーと同じレコードにいる場合、それは友情です。この出力の中で、プロファイルユーザーを除外して、単に友だちを表示したいと考えています。 – Paul

答えて

1

更新答え:

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

あなたが与えた最初の例は ' - >'にエラーを与えています.2番目の 'in_array'の例は' Notice:非オブジェクトのプロパティを取得しようとしています 'というエラーを出しています。 – Paul

+0

いいえ、私の更新を見てください:) – Max

+0

配列の場合 - 'Parse error:構文エラー、予期しない '$ friend_total_row'(T_VARIABLE)、 'が期待されています' ...比較では大括弧' [' 。 – Paul

関連する問題