PHP删除具有重复的特定键值的关联数组的数组
我有一个关联数组PHP删除具有重复的特定键值的关联数组的数组,php,arrays,Php,Arrays,我有一个关联数组 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@
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)来获得这个结果
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"
}
我怎么能这么做谢谢您通过
联系电子邮件
提取到数组并建立索引。由于不能有重复的索引,您将获得最后一次出现的索引:
$array = array_column($array, null, 'contact_email');
如果要将其重新索引回整数:
$array = array_values(array_column($array, null, 'contact_email'));
我想这会有帮助
$arr = [['contact_email' => 'a@a.com'], ['contact_email' => 'a@a.com'], ['contact_email' => 'b@a.com']];
$result = [];
array_map(function ($item) use (&$result) {
$result[$item['contact_email']] = $item;
}, $arr);
print_r($result);
您可以使用
foreach
并通过contact\u email
$r = [];
foreach($a as $v){
$r[$v['contact_email']] = $v;
}
print_r(array_values($r));// reorder index
工作示例:这是一个非常好的解决方案!非常感谢。可能重复的