首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交换字符串中的两个值,然后在php中按第二个值排序?

交换字符串中的两个值,然后在php中按第二个值排序?
EN

Stack Overflow用户
提问于 2016-04-03 06:24:32
回答 1查看 27关注 0票数 0

我有这样的绳子:

代码语言:javascript
复制
EUR-USD,USD-EUR,SEk-CAD

我想把它变成一个数组,并按第二种货币进行排序,我希望结果是

代码语言:javascript
复制
SEk-CAD,USD-EUR,EUR-USD

(按加元、欧元和美元排序)

这是我的尝试,而且成功了,但我想知道我是不是“做得太过分了”?有人有更容易/更好的解决方案来实现这一点吗?

第二货币

创建货币对数组:

代码语言:javascript
复制
array (size=3)
  0 => 
    array (size=2)
      0 => string 'EUR' (length=3)
      1 => string 'USD' (length=3)
  1 => 
    array (size=2)
      0 => string 'USD' (length=3)
      1 => string 'EUR' (length=3)
  2 => 
    array (size=2)
      0 => string 'SEk' (length=3)
      1 => string 'CAD' (length=3)

将上述数组中的货币对反向排序,并将它们放入一个非多维数组中:

代码语言:javascript
复制
array (size=3)
  0 => string 'USD-EUR' (length=7)
  1 => string 'EUR-USD' (length=7)
  2 => string 'CAD-SEk' (length=7)

对数组进行排序(使用sort() ),并将该数组粘合到一个新的字符串中

代码语言:javascript
复制
string 'CAD-SEk,EUR-USD,USD-EUR' (length=23)

从新创建的字符串中创建一个货币对数组:

代码语言:javascript
复制
array (size=3)
  0 => 
    array (size=2)
      0 => string 'CAD' (length=3)
      1 => string 'SEk' (length=3)
  1 => 
    array (size=2)
      0 => string 'EUR' (length=3)
      1 => string 'USD' (length=3)
  2 => 
    array (size=2)
      0 => string 'USD' (length=3)
      1 => string 'EUR' (length=3)

将上述数组中的货币对反向排序,并将它们放入一个非多维数组中:

代码语言:javascript
复制
array (size=3)
  0 => string 'SEk-CAD' (length=7)
  1 => string 'USD-EUR' (length=7)
  2 => string 'EUR-USD' (length=7)

将数组粘合到最后一个字符串中:

代码语言:javascript
复制
string 'SEk-CAD,USD-EUR,EUR-USD' (length=23)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-03 06:45:56

试试这个:

代码语言:javascript
复制
$currency_string = "EUR-USD,USD-EUR,SEk-CAD";

$currency_array = explode(",", $currency_string);

function compare($a, $b) {

    $a = explode("-", $a);
    $b = explode("-", $b);

    if ($a[1] === $b[1]){
        return 0;
    }

    return ($a[1] < $b[1]) ? -1 : 1;
 }

 usort($currency_array, "compare");

 $final_currency_string = implode(",", $currency_array);

 echo $final_currency_string; // Prints SEk-CAD,USD-EUR,EUR-USD

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36382269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档