【问题标题】:Error with array_uniquearray_unique 错误
【发布时间】:2011-11-02 04:48:59
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: php arrays array-unique


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      来自documentation for array_unique

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

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

      【讨论】:

        猜你喜欢
        • 2023-03-27
        • 2021-02-25
        • 2011-06-07
        • 2014-07-31
        • 1970-01-01
        • 1970-01-01
        • 2013-11-30
        • 1970-01-01
        • 2011-01-26
        相关资源
        最近更新 更多