$arr = [3, 5, 7, 12, 18, 20, 23, 27, 30];
$size = count($arr);
$N = 22;
$left = $sum = $nearest_sum = $paira = $pairb = $nearest_sum = 0;
$nearest = PHP_INT_MAX ;
$right = $size - 1;
while ($left < $right) {
$sum = $arr[$left] + $arr[$right];
if (abs($N - $sum) < $nearest) {
$nearest = abs($N - $sum);
$nearest_sum = $sum;
$paira = $arr[$left];
$pairb = $arr[$right];
}
if ($sum > $N)
$right--;
else if ($sum <= $N)
$left++;
}
echo $nearest_sum . "\n";
echo $paira . " " . $pairb;
/*
run:
23
3 20
*/