Ошибка с array_unique
Что я делаю не так с этим? Если я просто запустите это:
$region = EM_Locations::get(array('orderby'=>'region_name'));
все хорошо. Однако, когда я добавляю в array_unique:
$region = EM_Locations::get(array('orderby'=>'region_name'));
$reg = array_unique($region)
Он ломается и получает "EM_Location не может быть преобразован в строку"
2 ответа
array_unique() сортирует значения, которые обрабатываются как строки, два элемента считаются равными тогда и только тогда, когда (строка) $elem1 === (строка) $elem2.
Вы можете добавить метод __toString() для EM_Location
учебный класс.
Из документации для array_unique:
array_unique () сначала сортирует значения, которые обрабатываются как строки, затем сохраняет первый ключ, найденный для каждого значения, и игнорирует все последующие ключи.
Это означает, что значения должны быть преобразованы в строку для сравнения, но ваши значения имеют тип EM_Location
, который PHP не может понять, как преобразовать в строку.