Удалить дубликат из foreach php

Я уже пробовал array_unique, но не получил желаемых результатов.

Вот структура базы данных:

Удалить дубликат из foreach php

Вот что я пробовал, но два раза получал одного и того же «пользователя 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 ) ))

Вы должны рассказать нам, что составляет «уникальный». Читая ваш код, похоже, что это может быть отправитель, но это кажется немного странным. В этом коде много неправильного. Похоже, вы намеревались использовать $ sddsf для отслеживания выписанных вами записей, но вы никогда не присваиваете никаких значений массиву.

symcbean 21.11.2018 12:14

@symcbean спасибо за указание, что в основном я получаю два 'user1', и я хочу показать только один из них (не имеет значения, какой из них). Я обновил код, пожалуйста, посмотрите.

MR_AMDEV 21.11.2018 12:26

Проблема в том, что если я удаляю 'user1', он удаляет все результаты, связанные с user1, но при размещении $ my1 он удаляет все

MR_AMDEV 21.11.2018 12:28

Вы также упростите людям помощь, если будете использовать узнаваемый стиль кода. ПСР-2 для предпочтения.

symcbean 21.11.2018 13:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
52
1

Ответы 1

//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);

Другие вопросы по теме