У меня есть php-массив стран, которые я хочу отсортировать в определенном порядке, основываясь на запросах нашего клиента.
Массив в настоящее время передается из нашего бэкэнда, который я не могу контролировать, как показано ниже:
array(10) {
["AUD"]=>
string(17) "Australian Dollar"
["GBP"]=>
string(22) "British Pound Sterling"
["CAD"]=>
string(15) "Canadian Dollar"
["DKK"]=>
string(12) "Danish Krone"
["EUR"]=>
string(4) "Euro"
["JPY"]=>
string(12) "Japanese Yen"
["NOK"]=>
string(15) "Norwegian Krone"
["RUB"]=>
string(13) "Russian Ruble"
["SEK"]=>
string(13) "Swedish Krona"
["USD"]=>
string(9) "US Dollar"
}
Мне нужно изменить порядок, исходя из предпочтений клиента, чтобы он был похож на
array(10) {
["GBP"]=>
string(22) "British Pound Sterling"
["AUD"]=>
string(17) "Australian Dollar"
["NOK"]=>
string(15) "Norwegian Krone"
["RUB"]=>
string(13) "Russian Ruble"
["USD"]=>
string(9) "US Dollar"
["CAD"]=>
string(15) "Canadian Dollar"
["DKK"]=>
string(12) "Danish Krone"
["EUR"]=>
string(4) "Euro"
["JPY"]=>
string(12) "Japanese Yen"
["SEK"]=>
string(13) "Swedish Krona"
}
Единственный способ, которым я мог подумать, это сделать оператор switch,
$ordered_currencies = Array();
?>
<?php foreach ($currencies as $_code => $_name):
switch ($_code) {
case 'AUD':
$ordered_currencies[0] = [$_code => $_name];
break;
case 'CAD':
$ordered_currencies[1] = Array($_code => $_name);
break;
case 'GBP':
$ordered_currencies[2] = Array($_code => $_name);
break;
case 'DKK':
$ordered_currencies[3] = Array($_code => $_name);
break;
case 'EUR':
$ordered_currencies[4] = Array($_code => $_name);
break;
case 'JPY':
$ordered_currencies[5] = Array($_code => $_name);
break;
case 'RUB':
$ordered_currencies[6] = Array($_code => $_name);
break;
case 'SEK':
$ordered_currencies[7] = Array($_code => $_name);
break;
case 'USD':
$ordered_currencies[8] = Array($_code => $_name);
break;
}
endforeach; ?>
Но это возвращает массив в следующем формате, который мне не нужен
array(10) {
[0]=>
array(1) {
["AUD"]=>
string(17) "Australian Dollar"
}
[2]=>
array(1) {
["GBP"]=>
string(22) "British Pound Sterling"
}
[1]=>
array(1) {
["CAD"]=>
string(15) "Canadian Dollar"
}
.....
Есть идеи?