What are some common challenges when sorting tables with multiple columns in PHP?

When sorting tables with multiple columns in PHP, a common challenge is determining how to sort the table based on the user's selected column and sorting order. One way to solve this is by using multidimensional arrays to store the table data and then applying the usort() function to sort the array based on the selected column and sorting order.

// Sample multidimensional array representing table data
$tableData = [
    ['name' => 'John', 'age' => 25, 'city' => 'New York'],
    ['name' => 'Alice', 'age' => 30, 'city' => 'Los Angeles'],
    ['name' => 'Bob', 'age' => 22, 'city' => 'Chicago'],
];

// Function to sort multidimensional array by a specific column
function sortByColumn($data, $column, $order = SORT_ASC) {
    usort($data, function($a, $b) use ($column, $order) {
        return $order === SORT_ASC ? $a[$column] <=> $b[$column] : $b[$column] <=> $a[$column];
    });
    return $data;
}

// Sort the table data by 'name' column in ascending order
$tableData = sortByColumn($tableData, 'name', SORT_ASC);

// Print sorted table data
foreach ($tableData as $row) {
    echo $row['name'] . ' | ' . $row['age'] . ' | ' . $row['city'] . PHP_EOL;
}