Как я могу удалить дубликаты подмассивов из моего многомерного массива?

У меня есть массив:

array:3 [▼
  0 => array:1 [▼
    "name" => "test#4"
  ]
  1 => array:1 [▼
    "name" => "C"
  ]
  2 => array:1 [▼
    "name" => "C"
  ]
]

Я хочу получить только уникальные значения:

array:2 [▼
  0 => array:1 [▼
    "name" => "test#4"
  ]
  1 => array:1 [▼
    "name" => "C"
  ]
]

Какую функцию PHP я должен использовать?

я использую array_unique():

$group_array = [];
foreach ($private_group_devices as $i=>$group) {
    $group_array[$i]['name'] = $group['group_name'];
}
// dd($group_array);
dd(array_unique($group_array));

Но я продолжаю получать:

Преобразование массива в строку

1 ответ

Решение

Вы можете передать SORT_REGULAR флаг в ваш array_unique позвоните, как следует:

dd(array_unique($group_array, SORT_REGULAR));

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

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