<?php
$a[0] = Array("key1" => "a","key2"=> "199","key3"=>"1");
$a[1] = Array("key1" => "a","key2"=> "100","key3"=>"2");
$a[3] = Array("key1" => "b","key2"=> "101","key3"=>"3");$o = array();
foreach($a as $k=>$ar) {
  $v = $ar['key1'];
  if(isset($o[$v])) {
    if($ar['key2'] > $o[$v]['key2']) {
      $o[$v]['key2'] = $ar['key2'];
      $o[$v]['key3'] = $ar['key3'];
    }
  }else {
    $o[$v]['key2'] = $ar['key2'];
    $o[$v]['key3'] = $ar['key3'];
  }
}
$a = array();
foreach($o as $k=>$v)
  $a[] = array_merge(array("key1" => $k),$v);
print_r($a);
?>