In what ways can PHP be optimized to handle the sorting and ranking of teams in a sports league based on various criteria like points and goal differences efficiently?

To efficiently handle the sorting and ranking of teams in a sports league based on criteria like points and goal differences, we can use a custom sorting function in PHP that compares teams based on multiple criteria. By using a combination of usort() and custom comparison functions, we can easily sort the teams in the desired order.

// Sample array of teams with points and goal differences
$teams = [
    ['team' => 'Team A', 'points' => 10, 'goal_difference' => 5],
    ['team' => 'Team B', 'points' => 8, 'goal_difference' => 3],
    ['team' => 'Team C', 'points' => 12, 'goal_difference' => 7],
];

// Custom sorting function based on points and goal differences
usort($teams, function($a, $b) {
    if ($a['points'] == $b['points']) {
        return $b['goal_difference'] - $a['goal_difference'];
    }
    return $b['points'] - $a['points'];
});

// Output sorted teams
foreach ($teams as $team) {
    echo $team['team'] . " - Points: " . $team['points'] . ", Goal Difference: " . $team['goal_difference'] . "\n";
}