<?php $array = [["id"=>"111","email_adr"=>"AAA","ad_owner_email"=>"BBB"], ["id"=>"111","email_adr"=>"BBB","ad_owner_email"=>"CCC"], ["id"=>"111","email_adr"=>"BBB","ad_owner_email"=>"AAA"], //<--discarded ["id"=>"500","email_adr"=>"QQQ","ad_owner_email"=>"PPP"], ["id"=>"500","email_adr"=>"PPP","ad_owner_email"=>"QQQ"], //<--discarded ["id"=>"999","email_adr"=>"PPP","ad_owner_email"=>"QQQ"], //<-saved because id=1000 and differs from id=500 ]; $tmp1 = []; function getIndex($data,$ne){ foreach($data as $key=>$val){ if ($val['email_adr'] === $ne['a'] && $val['ad_owner_email'] === $ne['b']) return $key; } return -1; } foreach($array as $record){ $tmp1[$record['id']][$record['email_adr']][] = $record['ad_owner_email']; } // print_r($tmp1); foreach($array as $ind=>$record){ if (isset($tmp1[$record['id']][$record['ad_owner_email']]) && !empty($tmp1[$record['id']][$record['ad_owner_email']]) && in_array($record['email_adr'],$tmp1[$record['id']][$record['ad_owner_email']]) && in_array($record['ad_owner_email'],$tmp1[$record['id']][$record['email_adr']]) ) { $tm1 = array_search($record['email_adr'],$tmp1[$record['id']][$record['ad_owner_email']]); $tm2 = array_search($record['ad_owner_email'],$tmp1[$record['id']][$record['email_adr']]); $in = getIndex($array, ['a'=>$record['ad_owner_email'], 'b'=>$record['email_adr']]); unset($tmp1[$record['id']][$record['email_adr']][$tm2]); unset($tmp1[$record['id']][$record['ad_owner_email']][$tm1]); unset($array[$in]); } } sort($array); print_r($array);
You have javascript disabled. You will not be able to edit any code.