合并两个包含对象的数组并删除重复值

新手上路,请多包涵

我需要将两个对象数组合并为一个数组并删除重复的 email 值。

我怎样才能做到这一点?

这些是我的示例数组:

 $array1 = [
    (object) ["email" => "gffggfg"],
    (object) ["email" => "wefwef@test.it"],
    (object) ["email" => "wefewf"],
];
$array2 = [
    (object) ["email" => "gffggfg@test.it"],
    (object) ["email" => "wefwef"],
    (object) ["email" => "wefewf"],
];

我的预期结果是:

 [
   (object) ['email' => 'gffggfg'],
   (object) ['email' => 'wefwef@test.it'],
   (object) ['email' => 'wefewf'],
   (object) ['email' => 'gffggfg@test.it'],
   (object) ['email' => 'wefwef'],
]

原文由 itsme 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 300
2 个回答

您可以将 array_merge() 函数与 array_unique() 函数结合使用(两个标题都很容易解释)

 $array = array_unique (array_merge ($array1, $array2));

原文由 Jeroen 发布,翻译遵循 CC BY-SA 3.0 许可协议

非常旧的线程,但是…… OP 的数组包含对象。如果我是操作员,我将声明一个类,该类在构造函数中使用返回电子邮件的 __toString() 函数接收子数组。如果 op 然后将他的对象变成该类的实例,array_unique 应该在比较时调用 __toString()

原文由 Emanuel Garon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题