我做错了什么?如果我只是运行:
$region = EM_Locations::get(array('orderby'=>'region_name'));
一切都很好。但是,当我添加array_unique时:
$region = EM_Locations::get(array('orderby'=>'region_name'));
$reg = array_unique($region)
它断开并得到“EM_Location无法转换为字符串”
答案 0 :(得分:1)
来自documentation for array_unique:
array_unique()首先对作为字符串处理的值进行排序,然后进行排序 保持每个值遇到的第一个键,并忽略所有 以下钥匙。
这意味着必须将值转换为字符串以进行比较,但是您的值似乎是EM_Location
类型,PHP无法弄清楚如何转换为字符串。
答案 1 :(得分:1)
array_unique()对被视为字符串的值进行排序,两个元素是 当且仅当(字符串)$ elem1 ===(字符串)$ elem2。
您可以为EM_Location
类添加__toString()方法。