Level 5
Hope this helps someone.
$haystack = array(...); //some array
$needles = array('one', 'two', 'three', 'four'); //keys
foreach($haystack as $row){
$key=implode('',array_intersect_key($row,array_flip($needles))); //make key
if(!isset($result[$key])) //if doesn't exist new one
{
$result[$key]=$row;
}
else //if exists compare dates
{
$date = strtotime($result[$key]['date']);
$compare = strtotime($row['date']);
if ($date > $compare) {
continue;
}
else
{
$result[$key] = $row;
}
}
}