我的目標是在對象數組中找到重複對象,但僅限於特定的對象變量。根據特定鍵在對象數組中找到重複對象
而是使用兩個的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
}
});
看起來比很多高2的foreach循環;-)
好主意!我想我用'usort()'和一個回調函數來嘗試這個函數,該函數根據變量對數組進行排序。希望這個比兩個foreach循環更快。謝謝! – Tom
我在上面的問題上發佈了我的解決方案。謝謝你的想法。 – Tom