dongtou8736 2017-11-26 09:59
浏览 94
已采纳

符号的货币代码 - PHP JSON

I want to create a system that will return the official currency symbol by receiving the currency code (3 letters), which means that once the function receives USD it will return the $ sign and so to all the denominator in the world.

The result I get with the function I published is wrong (I would like to get $ for USD and not د.إ.‏ for AED). I have no idea why? TIA

Array ( 
    [symbol] => AED [symbol_native] => د.إ.‏ 
    [decimal_digits] => 2 
    [rounding] => 0 [code] => AED   
)
   function file_get_contents_curl($url) {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $url);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
    }

    function searchJson( $obj, $value ) {
        foreach( $obj as $key => $item ) {
            if( !is_nan( intval( $key ) ) && is_array( $item ) ){
                if( in_array( $value, $item ) ) return $item;
            } else {
                foreach( $item as $child ) {
                    if(isset($child) && $child == $value) {
                        return $child;
                    }
                }
            }
        }
        return null;
    }

    function get_currency_symbol($cur)
    {
    $json = file_get_contents_curl('http://www.localeplanet.com/api/auto/currencymap.json');    
    $data = json_decode( $json, true);
    $results = searchJson( $data , $cur );
    return $results;
    }

    print_r(get_currency_symbol('USD'));
  • 写回答

1条回答 默认 最新

  • doukanwa6872 2017-11-26 10:14
    关注

    You only need to match your string with json decoded key.

    function searchJson( $obj, $value ) {      
            foreach( $obj as $key => $item ) {
              if(strtolower($key) == strtolower($value))
                return $item;
    
            }
            return null;
        }
    

    DEMO

    OR simply check index directly

    function searchJson( $obj, $value ) { 
            $data = isset($obj[$value])?$obj[$value]:null;        
            return $data;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?