public function getList($sort = null)
{
//Get the countries list
$countries = $this->getCountries();
//Sorting
$validSorts = array('capital', 'citizenship', 'country-code', 'currency', 'currency_code', 'currency_sub_unit', 'full_name', 'iso_3166_2', 'iso_3166_3', 'name', 'region-code', 'sub-region-code', 'eea', 'calling_code', 'currency_symbol', 'flag');
if (!is_null($sort) && in_array($sort, $validSorts)) {
uasort($countries, function ($a, $b) use($sort) {
if (!isset($a[$sort]) && !isset($b[$sort])) {
return 0;
} elseif (!isset($a[$sort])) {
return -1;
} elseif (!isset($b[$sort])) {
return 1;
} else {
return strcasecmp($a[$sort], $b[$sort]);
}
});
}
//Return the countries
return $countries;
}