【发布时间】:2017-11-15 19:19:24
【问题描述】:
我是编程新手,想知道是否有一种捷径可以找到两个包含稍微不同对象的数组的交集。这就是我尝试使用的:
array_uintersect()
对象看起来像这样:
class object1
{
private $_customerId;
private $_orderId;
private $_someOtherStuff;
}
和:
class object2
{
private $_customerId;
private $_orderId;
private $_someDifferentStuff;
}
自定义函数如下所示:
private function compareObjects($o1, $o2)
{
return $o1->compareObjectIntersection($o2);;
}
使用这种方法:
public function compareObjectIntersection($object)
{
if($this->_customerId < $object->getCustomerId() || $this->_orderId < $object->getOrderId())
{
return -1;
}
elseif$this->_customerId > $object->getCustomerId() || $this->_orderId > $object->getOrderId())
{
return 1;
}
return 0;
}
如果不用自己用大量的 for 循环编写所有内容,这是否可能?
编辑:
这个想法是摆脱所有不包含这两个属性的相同对的对象:
private $_customerId;
private $_orderId;
首先我得到一个空数组
【问题讨论】:
-
就数据而言,这些对象包含什么内容,您将从上面的对象中得到什么结果???
-
包含不同内容的对象,主要是整数和字符串。重点是前两个属性。这个想法是摆脱所有不包含这两个属性的同一对的对象: private $_customerId;私人 $_orderId;首先,我得到一个空数组。
-
毛伊岛,而不是将标题更改为“已解决”,在 Stack Overflow 上,您应该将正确答案标记为“已接受”(答案分数下方的绿色刻度线)。 :)
-
非常感谢domdom。我会尽快改的
标签: php arrays array-intersect