1

我做错了什么?如果我只是运行这个:

$region = EM_Locations::get(array('orderby'=>'region_name'));

一切都很好。但是,当我添加 array_unique 时:

$region = EM_Locations::get(array('orderby'=>'region_name'));
$reg = array_unique($region)

它中断并得到“EM_Location 无法转换为字符串”

4

2 回答 2

1

array_unique 的文档中

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

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

于 2011-11-02T04:51:53.237 回答
1

array_unique() 对作为字符串处理的值进行排序,当且仅当 (string) $elem1 === (string) $elem2 时,两个元素才被认为相等。

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

于 2011-11-02T04:52:39.337 回答