PHP删除关联数组的数组,这些数组具有特定键的重复值

问题描述:

我有一个关联数组的数组

I've a array of associative array

array(xxx) {
 [0]=>
   array(3) {
    ["group_id"]=>2
    ["contact"]=> "foo"
    ["contact_email"]=> "foo@gmail.com"
   }
 [1]=>
   array(3) {
    ["group_id"]=>2
    ["contact"]=> "bar"
    ["contact_email"]=> "bar@gmail.com"
   }
  [2]=>
   array(3) {
    ["group_id"]=>2
    ["contact"]=> "foobar"
    ["contact_email"]=> "bar@gmail.com"
   }
 [3]=>
   array(3) {
    ["group_id"]=>2
    ["contact"]=> "bar"
    ["contact_email"]=> "bar@gmail.com"
   }

我要删除重复的数组

array_unique( $array, SORT_REGULAR );

但是现在我想做些更具体的事情,即只消除具有重复键值(contact_email)的数组以获得此结果

But now I would like to do something more specific by eliminating only the arrays that have duplicated key value (contact_email) to obtain this result

 array(xxx) {
 [0]=>
   array(3) {
    ["group_id"]=>2
    ["contact"]=> "foo"
    ["contact_email"]=> "foo@gmail.com"
   }
 [1]=>
   array(3) {
    ["group_id"]=>2
    ["contact"]=> "bar"
    ["contact_email"]=> "bar@gmail.com"
   }

我该怎么做?
谢谢

How could i do that?
Thank you

通过 contact_email 提取到数组并建立索引.由于不能有重复的索引,您将得到最后一次出现:

Extract to an array and index by contact_email. Since there cannot be duplicate indexes you'll get the last occurrence:

$array = array_column($array, null, 'contact_email');

如果您希望将其重新索引回整数:

If you want to re-index that back to integers:

$array = array_values(array_column($array, null, 'contact_email'));