我的目标是在对象数组中找到重复项,但仅限于特定的对象变量。
我没有像下面这样使用两个 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 循环好多了 ;-)
最佳答案
你试过 php 中的 in_array()
函数吗??
有关 in_array() 的更多引用,请使用此 url
关于php - 根据特定键在对象数组中查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913229/