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 could not convert to string」というメッセージが表示されます

4

2 に答える 2

1

array_unique()は、文字列として扱われる値を並べ替えます。(string)$ elem1 ===(string)$ elem2の場合に限り、2つの要素は等しいと見なされます。

クラスに__toString()メソッドを追加できますEM_Location

于 2011-11-02T04:52:39.337 に答える
1

array_uniqueのドキュメントから:

array_unique() は、最初に文字列として扱われる値をソートし、すべての値に対して最初に検出されたキーを保持し、後続のすべてのキーを無視します。

これは、比較のために値を文字列に変換する必要があることを意味しますが、値は のように見えEM_Location、PHP は文字列に変換する方法を理解できません。

于 2011-11-02T04:51:53.237 に答える