How can the DataObject::get() function in PHP be optimized to address the sorting problem?

The issue with the DataObject::get() function in PHP is that it does not provide sorting functionality by default. To address this problem, we can optimize the function by adding a parameter for sorting criteria and using PHP's array_multisort() function to sort the data accordingly.

class DataObject {
    private $data;

    public function __construct($data) {
        $this->data = $data;
    }

    public function get($sortKey = null, $sortOrder = SORT_ASC) {
        $sortedData = $this->data;

        if($sortKey) {
            $sortColumn = array_column($sortedData, $sortKey);
            array_multisort($sortColumn, $sortOrder, $sortedData);
        }

        return $sortedData;
    }
}

// Example usage
$data = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Charlie']
];

$dataObject = new DataObject($data);
$sortedData = $dataObject->get('name', SORT_ASC);

print_r($sortedData);