我做错了什么?如果我只运行这个:
$region = EM_Locations::get(array('orderby'=>'region_name'));
一切都好。然而,当我添加array_unique:
$region = EM_Locations::get(array('orderby'=>'region_name'));
$reg = array_unique($region)
它中断并得到"EM_Location could not convert to string"
array_unique()将作为字符串处理的值进行排序,两个元素是当且仅当(string) $elem1 === (string) $elem2
您可以为EM_Location
类添加__toString()方法
来自array_unique的文档:
array_unique()首先将作为字符串处理的值排序,然后将保留每个值遇到的第一个键,忽略所有值后钥匙。
这意味着值必须转换为字符串进行比较,但是您的值似乎是EM_Location
类型,PHP无法找出如何转换为字符串