array_unique出错

时间:2011-11-02 04:49:00

标签: php arrays 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 个答案:

答案 0 :(得分:1)

来自documentation for array_unique

  

array_unique()首先对作为字符串处理的值进行排序,然后进行排序   保持每个值遇到的第一个键,并忽略所有   以下钥匙。

这意味着必须将值转换为字符串以进行比较,但是您的值似乎是EM_Location类型,PHP无法弄清楚如何转换为字符串。

答案 1 :(得分:1)

  

array_unique()对被视为字符串的值进行排序,两个元素是   当且仅当(字符串)$ elem1 ===(字符串)$ elem2。

您可以为EM_Location类添加__toString()方法。