按PHP中的值按字母顺序对数组进行排序

时间:2015-02-11 12:15:22

标签: php arrays sorting

我有一系列货币代码及其相关联的国家/地区,如下所示:

$currency_list = array(
  "cad" => array("Canada"),
  "eur" => array("Austria", "Belgium", "Estonia"),
  "aed" => array("United Arab Emirates", "Dubai")
);

我输出的是这样的:

foreach (array_keys($currency_list) as $key) {
  foreach($currency_list[$key] as $value) {
  echo $key." ".$value;
  }
}

这给了我:

  

" cad 加拿大"," eur 奥地利"," eur 比利时"," eur 爱沙尼亚"," aed 阿拉伯联合酋长国"

如何对$ currency_list数组进行排序,以便在循环播放时,我按照字母顺序获取结果:

  

" eur 奥地利"," eur 比利时"," cad 加拿大"," eur 爱沙尼亚"," aed 阿拉伯联合酋长国"

2 个答案:

答案 0 :(得分:2)

$sorted = array();
foreach ($currency_list as $currency => $countries) {
    foreach ($countries as $country) {
        $sorted[$country] = $currency;
    }
}

ksort($sorted);

print_r($sorted);  // do your loop here

答案 1 :(得分:0)

试试这个..

$currency_list = array(
  "cad" => array("Canada"),
  "eur" => array("Austria", "Belgium", "Estonia"),
  "aed" => array("United Arab Emirates", "Dubai")
);
foreach ($currency_list as $key => $value) {
    foreach ($value as $value1) {
        $newarray[$value1] = $key;
    }
}

ksort($newarray);
foreach($newarray as $key => $value)
{
echo $value." ".$key;
}

Result:eur Austriaeur Belgiumcad Canadaaed Dubaieur Estoniaaed United Arab Emirates