检查另一个数组中的数组是否具有相同的元素

时间:2019-06-10 10:16:16

标签: php arrays

在数组中不应允许相同的电子邮件:

[
 ["first" => "John", "last" => "Snow","email" => "john@snow.com"],
 ["first" => "Sansa","last" => "Stark","email" => "sansa@stark.com"],
 ["first" => "Rob","last" => "Stark","email" => "john@snow.com"]
]

外部数组中可以有无限数量的数组类型元素。我应该迭代foreach并使用一些临时变量来写email还是有更有效的方法?

1 个答案:

答案 0 :(得分:3)

您可以简单地检查原始数组元素的数量是否等于唯一电子邮件地址的数量(使用array_column()array_unique()完成)。

if ( count($data) != count(array_unique(array_column($data, "email"))) )    {
    echo "Multiple";
}

(假设数组位于$data中)。

或者只是对/错...

echo count($data) != count(array_unique(array_column($data, "email")));