code: private static function getTop(array $arr, Comparator $c = null, $isMax = false)
      {
          if (!isset($c)) {
              $c = DefaultComparator::getInstance();
          }
          $candidate = null;
          foreach ($arr as $current) {
              if (!isset($candidate)) {
                  $candidate = $current;
                  continue;
              }
              $comp = $c->compare($current, $candidate);
              if (($isMax && 0 < $comp) || (!$isMax && $comp < 0)) {
                  $candidate = $current;
              }
          }
          return $candidate;
      }
docs: {@link Arrays::max} と {@link Arrays::min} の共通部分の実装です.
  @param  array      $arr
  @param  Comparator $c
  @param  bool       $isMax
  @return mixed