3v4l.org

run code in 300+ PHP versions simultaneously
<?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);
Output for git.master, git.master_jit, rfc.property-hooks
Array ( [0] => Array ( [id] => 111 [email_adr] => AAA [ad_owner_email] => BBB ) [1] => Array ( [id] => 111 [email_adr] => BBB [ad_owner_email] => CCC ) [2] => Array ( [id] => 500 [email_adr] => QQQ [ad_owner_email] => PPP ) [3] => Array ( [id] => 999 [email_adr] => PPP [ad_owner_email] => QQQ ) )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
33.01 ms | 407 KiB | 5 Q