我需要比较2个对象,以删除重复项/查找新的小肠。
对象不相同,但是它们包含相同的用户名密钥
这是布局
数据库对象
array
[0]db->username
[0]db->something
[1]db->username
[1]db->something
etc
其他物件
array
[0]ob->username
[0]ob->somethingElse
[1]ob->username
[1]ob->somethingElse
etc
我想我可以循环一个对象数组,并将$ db [$ key]-> username与另一个对象$ ob [$ key]-> username的内部循环进行比较,但是有没有更干净的方法?
我正在寻找删除重复项
不,没有更清洁的方法,您必须遍历属性。如果不是StdClass对象,则向其类添加一个自定义的compare方法:
class Person {
protected $id;
protected $name;
protected $age;
/**
* Compares two persons an returns true if their name
* and age equals.
*/
public function equals(Person $b) {
if($b->name === $this->name && $b->age === $this->age) {
return TRUE;
}
return FALSE;
}
}
然后像这样使用它:
$personA = DB::getPersonById(1);
$personB = DB::getPersonById(2);
if($personA->equals($personB)) {
echo "They are equal";
}
但是,除此之外,为什么不仅仅使用SQL删除重复项,或者甚至更好地在DB中使用唯一键来避免重复项呢?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句