Я уже пробовал array_unique, но не получил желаемых результатов.
Вот структура базы данных:
Вот что я пробовал, но два раза получал одного и того же «пользователя 1», он должен быть одним.
$stmt = $db_con->query("SELECT sender,recipient, content, sending_time
FROM messages AS sender
WHERE (sender='admin' OR recipient='admin')
GROUP BY sender,recipient
ORDER BY sending_time DESC
");
$stmt->execute();
foreach ($stmt as $key => $value) {
if ($value['sender'] == 'admin') {
$my = $value['recipient'];
} else if ($value['recipient'] == 'admin') {
$my = $value['sender'];
} else {
$my = $value['sender'];
}
if (!in_array($my, explode(' ', $my))) {
echo '<a href = "javascript:void(0)" class = "list-group-item p10 b0 b-rad-0">
<div class = "online-users pull-left mr5">
<img src = "../uploads/userprofile/default/avatar.jpg" onerror = "this.onerror=null;imgDefault(this);" alt = "avatar" class = "online-users-img">
<span title = "online"></span>
</div>
<strong class = "text-primary h4 mb2">' . $my . '<small class = "pull-right">OCT 23</small></strong>
<div><small class = "text-muted">asdasdajkasdhjgjhgjhgjhgjghjgjgggggggggggggsdfsdf...</small></div>
</a>';
}
}
вот данные из db, используя следующее:
$sddsf = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($sddsf);
Array ( [0] => Array (
[sender] => 2224
[recipient] => admin
[content] => sad
[sending_time] => 1536513903 )
[1] => Array (
[sender] => admin
[recipient] => user1
[content] => def
[sending_time] => 1536513874 )
[2] => Array (
[sender] => user1
[recipient] => admin
[content] => abc
[sending_time] => 1536513532 ) ))
@symcbean спасибо за указание, что в основном я получаю два 'user1', и я хочу показать только один из них (не имеет значения, какой из них). Я обновил код, пожалуйста, посмотрите.
Проблема в том, что если я удаляю 'user1', он удаляет все результаты, связанные с user1, но при размещении $ my1 он удаляет все
Вы также упростите людям помощь, если будете использовать узнаваемый стиль кода. ПСР-2 для предпочтения.






//Find duplicates
$arr_data = array(
'one',
'two',
'Three',
'Four',
'Five',
'Six',
'Seven',
'Eight',
'Nine'
);
$unique_data = array_unique($arr_data);
$dup= array_diff_key( $arr_data, $unique_data);
array_count_values($dup);
Вы должны рассказать нам, что составляет «уникальный». Читая ваш код, похоже, что это может быть отправитель, но это кажется немного странным. В этом коде много неправильного. Похоже, вы намеревались использовать $ sddsf для отслеживания выписанных вами записей, но вы никогда не присваиваете никаких значений массиву.