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;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟