Как удалить дубли с под массива?

146
30 марта 2018, 13:39

Есть массив вот такого вида.

Array 
( 
    [chat_9] => Array 
        ( 
            [0] => 47 
            [1] => 21 
            [2] => 47 
            [3] => 47 
            [4] => 25 
            [5] => 25 
            [28] => 25 
            [29] => 25 
            [36] => 25 
            [37] => 47 
            [38] => 21 
            [53] => 25 
            [54] => 21 
            [56] => 21 
            [57] => 21 
            [58] => 25 
            [59] => 25 
            [60] => 25 
            [61] => 21 
        ) 
 
    [chat_10] => Array 
        ( 
            [0] => 25 
            [1] => 21 
            [2] => 21 
            [3] => 25 
            [4] => 21 
            [5] => 25 
            [6] => 25 
            [7] => 21 
            [8] => 21 
            [9] => 25 
            [10] => 25 
            [11] => 21 
            [12] => 25 
            [13] => 21 
            [14] => 21 
            [15] => 25 
            [16] => 21 
        )

Как убрать дубли но так чтобы [chat_9] , [chat_10] остались, нужно удалить дубли которые находятся внутри них.

Answer 1

Судя по всему, ключи в массивах вас особо не интересуют. При использовании array_unique будет сохранен ключ первого из дубликатов. Если ключи следует убрать, то обернуть это еще в array_values()

foreach($data as $k => $v){
   $data[$k] = array_unique($v);
}
Answer 2
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));

Ответ взят отсюда Как удалить повторяющиеся значения из многомерного массива в PHP

Answer 3

Сделал так:

 <?php  
 
  //$chat_users_info - это массив в котором дубли удалить нужно.  
 
    $keys = array_keys($chat_users_info); 
    $startfor = count($chat_users_info); 
    $chat_users_complette = array(); //А это будет новый массив 
    if($startfor != 0) { $startfor = $startfor - 1; } 
    for($i=0;$i<=$startfor;$i++): 
     
 
        array_push($chat_users_complette, [ "chat_".$keys[$i] =>array_unique($chat_users_info[$keys[$i]]) ]); 
     
    endfor; 
 
 
?>

READ ALSO
Проверка данных из массива PHP [требует правки]

Проверка данных из массива PHP [требует правки]

У меня есть массив и я не знаю как сравнить определенные строки в нем и вывести данные

163
Как развиваться дальше? [требует правки]

Как развиваться дальше? [требует правки]

Опытные программисты, мне бы хотелось узнать как правильно развиваться и что вообще делали вы ( как изучали языка, что при изучении ставили...

276
Автоподстройка ширины окна под виджет QTableWidget

Автоподстройка ширины окна под виджет QTableWidget

Доброго времени сутокСовсем только начинаю знакомится qt, возник вопрос по отображению

205
Помогите новичку в C++

Помогите новичку в C++

При попытке вывода элемента структуры выводится абсолютно другое число (например ввел 2 на выходе получил 40605290) В чем может быть дело?

175