私は多くの配列を持っており、それぞれがのインスタンスを保持していますProduct
。ユニークな製品のみを入手する必要があります。のPHPドキュメントからarray_diff
:
array array_diff ( array $array1 , array $array2 [, array $... ] )
(string)$ elem1 ===(string)$ elem2の場合に限り、2つの要素は等しいと見なされます。つまり、文字列表現が同じ場合。
toString()
これは、インスタンスに実装することを余儀なくされていることを意味しますか?カスタムコールバックを提供して差を計算する関数はありますか?
私はこのコードをテストしていませんが、関数がないため、toString()
機能しないと思いますProduct
:
$categories = array();
// ...
// Unique products from all categories, compared against ===
$uniqueProducts = array();
// Compute unique products
foreach($categories as $category) {
$uniqueProducts += array_diff($category->getProducts(), $uniqueProducts)
}
return $uniqueProducts;