How can PHP be optimized for sorting data based on calculated values like goal differences in a football table?

To optimize PHP for sorting data based on calculated values like goal differences in a football table, we can use the `usort` function along with a custom comparison function that calculates the goal differences for each team and sorts them accordingly.

// Sample data representing teams and their goals scored/conceded
$teams = [
    ['team' => 'Team A', 'goals_scored' => 10, 'goals_conceded' => 5],
    ['team' => 'Team B', 'goals_scored' => 8, 'goals_conceded' => 3],
    ['team' => 'Team C', 'goals_scored' => 12, 'goals_conceded' => 8],
];

// Custom comparison function to calculate goal differences and sort teams based on it
usort($teams, function($a, $b) {
    $goal_diff_a = $a['goals_scored'] - $a['goals_conceded'];
    $goal_diff_b = $b['goals_scored'] - $b['goals_conceded'];

    if ($goal_diff_a == $goal_diff_b) {
        return 0;
    }
    return ($goal_diff_a > $goal_diff_b) ? -1 : 1;
});

// Output sorted teams based on goal differences
foreach ($teams as $team) {
    echo $team['team'] . " - Goal Difference: " . ($team['goals_scored'] - $team['goals_conceded']) . "\n";
}