我的目标是在对象数组中找到重复项,但仅限于特定的对象变量。
我没有使用像下面这样的两个 foreach 循环,而是寻找一种更好(更优雅)的方法来查找重复项:
foreach ($data as $date) {
foreach ($data as $innerDate) {
if ($date->birthday == $innerDate->birthday &&
$date->street == $innerDate->street &&
$date->streetnr == $innerDate->streetnr &&
$date->zipcode == $innerDate->zipcode &&
$date->twinid == $innerDate->twinid &&
$date !== $innerDate) {
// Duple
}
}
}
谢谢!
现在,我正在使用以下代码,基于 Tarilo 的想法:
usort($data, function($obj_a, $obj_b){
if ($obj_a->birthday == $obj_b->birthday &&
$obj_a->street == $obj_b->street &&
$obj_a->streetnr == $obj_b->streetnr &&
$obj_a->zipcode == $obj_b->zipcode &&
$obj_a->twinid == $obj_b->twinid) {
// Duple
}
});
看起来比两个 foreach 循环好得多;-)