Array_unique показывает ошибку Преобразование массива в строку

Для получения уникальных значений я использую уникальные значения. Ниже приведен код, который я использую

array_unique($results_external);
aasort($results_external,"created_on");
$returns_buy_external[]=array_reverse($results_external, true);

Если я использую такой код, ниже приведена ошибка, которую я получаю

Возникла ошибка PHP. Серьезность: уведомление

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

Имя файла: models/product_model.php

Номер строки: 3550

строка 3550 - array_unique ($ results_external);

Может ли кто-нибудь помочь мне, почему он получает ошибку, как это и как ее решить?

results_external примерный формат ниже

Array
(
    [0] => Array
        (
            [id] => 144
            [name] => test
            [slug] => test
            [images] => {"9eebd0f69772dd3bdf8c787864437c85":{"filename":"9eebd0f69772dd3bdf8c787864437c85.png","alt":"TRESemme Smooth and Shine","caption":""}}
            [track_stock] => 1
            [seo_title] => ttt
            [qty] => 0
            [product_type] => 0
            [price] => 0.00
            [saleprice] => 0.00
            [external_links] => http://test.com
            [external_price] => 285.00
            [external_saleprice] => 285.00
            [created_on] => 2013-11-08 15:03:24
        )
)

Ответы

Ответ 1

Согласно docs, array_unique по умолчанию сравнивает элементы как строки. Это означает, что ваш 2D-массив преобразуется в массив строк (все являются "Array" и генерируют уведомление от массива к строкам), или только один может быть возвращен как уникальный.

Используйте флаг SORT_REGULAR для сравнения элементов, как они есть, но имейте в виду, что массивы считаются равными, если они имеют одинаковые пары ключ-значение.