How can unisex names be handled when sorting a list by gender in PHP?

When sorting a list by gender in PHP, unisex names can be handled by either assigning a specific gender to each name based on common associations, or by allowing the user to manually input the gender for each name. Another approach is to create a separate list of unisex names and treat them as a separate category during sorting.

// Sample array of names with genders
$names = [
    'Alex' => 'unisex',
    'Emily' => 'female',
    'Chris' => 'unisex',
    'Michael' => 'male',
];

// Function to sort names by gender
function sortByGender($names) {
    $maleNames = [];
    $femaleNames = [];
    $unisexNames = [];

    foreach ($names as $name => $gender) {
        if ($gender == 'male') {
            $maleNames[] = $name;
        } elseif ($gender == 'female') {
            $femaleNames[] = $name;
        } else {
            $unisexNames[] = $name;
        }
    }

    return array_merge($maleNames, $femaleNames, $unisexNames);
}

// Sort names by gender
$sortedNames = sortByGender($names);

// Output sorted names
print_r($sortedNames);