我有很多数组,每个数组都包含Product
. 只需要获得独特的产品。来自 PHP 文档array_diff
:
array array_diff ( array $array1 , array $array2 [, array $... ] )
当且仅当 (string) $elem1 === (string) $elem2 时,才认为两个元素相等。换句话说:当字符串表示相同时。
这是否意味着我被迫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;