[PHP] 複数の座標から四隅の座標を求める方法

以下のような座標を持った点からソートや並び替えなどをうまく行い、四隅の座標を求める方法を考えていました。

array(
 array(
  "x" => 100,
  "y" => 0,
 ),
 array(
  "x" => 105,
  "y" => 50,
 ),
 array(
  "x" => 200,
  "y" => 45,
 ),
 array(
  "x" => 205,
  "y" => 5,
 ),
)

最初の案では、X軸をもとにソートを行い、左にあるグループ、右にあるグループに分け、その中で、Y軸のソートを行うことで、四隅を求めようとしていたのですが、 与えられる座標が4点以上になったときに対応が難しいということもあり、多少の誤差はあるのですが、xのmax,min、yのmax,minを求めることにより、四隅を求めることにしました。

private function coordinateSort($coordinateArray){
        // x座標でのソート
        for($i = 0; $i < count($coordinateArray); $i++)
        {
            // 要素数-1回繰り返し
            for($n = 1; $n < count($coordinateArray); $n++)
            {
                // 隣接要素を比較し大小が逆なら入替える
                if($coordinateArray[$n-1]["x"] > $coordinateArray[$n]["x"])
                {
                    $temp = $coordinateArray[$n];
                    $coordinateArray[$n] = $coordinateArray[$n-1];
                    $coordinateArray[$n-1] = $temp;
                }
            }
        }

        $min_x = $coordinateArray[0]["x"];
        $max_x = $coordinateArray[count($coordinateArray)-1]["x"];

        //y座標でのソート
        for($i = 0; $i < count($coordinateArray); $i++)
        {
            // 要素数-1回繰り返し
            for($n = 1; $n < count($coordinateArray); $n++)
            {
                // 隣接要素を比較し大小が逆なら入替える
                if($coordinateArray[$n-1]["y"] > $coordinateArray[$n]["y"])
                {
                    $temp = $coordinateArray[$n];
                    $coordinateArray[$n] = $coordinateArray[$n-1];
                    $coordinateArray[$n-1] = $temp;
                }
            }
        }

        $min_y = $coordinateArray[0]["y"];
        $max_y = $coordinateArray[count($coordinateArray)-1]["y"];

        $sort_coordinate_array = array(
            "top_left" => array(
                "x" => $min_x,
                "y" => $min_y,
            ),
            "top_right" => array(
                "x" => $max_x,
                "y" => $min_y,
            ),
            "buttom_right" => array(
                "x" => $max_x,
                "y" => $max_y,
            ),
            "buttom_left" => array(
                "x" => $min_x,
                "y" => $max_y,
            )
        );
        return $sort_coordinate_array;
    }