2011-11-02 34 views
1

我在做什麼錯?如果我只是運行這個: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不能轉換爲字符串」

回答

1

array_unique()作爲排序字符串處理的值,兩個元件是 認爲是相等的,當且僅當(字符串)$ elem1 ===(字符串)$ elem2時。

您可以爲EM_Location類添加__toString()方法。

1

documentation for array_unique

array_unique()排序爲治療的價值字符串,然後將 保持每個值遇到的第一個鍵,並忽略以下鍵的所有 。

這意味着必須將值轉換爲字符串進行比較,但您的值似乎是EM_Location類型,而PHP無法知道如何轉換爲字符串。