私の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
を除外したいのです。次に、出力の二乗を表示します。
この行は、 '場合(in_array($ friend_total_row-> friend_one == $のprofile_user))'間違っています。 2つの等号記号ではなく、カンマで区切る必要があります。 http://php.net/manual/en/function.in-array.php –
なぜこれをクエリで除外したくないのか尋ねるだけです。また、現在の設定では、インスタンス上に重複した行が表示されるため、友人のプロファイルはあなたが期待するものですか? – nerdlyist
@nerdlyistクエリがリレーションシップと一致しているため、クエリから除外したくありません。 IE:プロファイルユーザーが別のユーザーと同じレコードにいる場合、それは友情です。この出力の中で、プロファイルユーザーを除外して、単に友だちを表示したいと考えています。 – Paul