符号的货币代码 - PHP JSON

Currency code to a symbol - PHP JSON

我想创建一个系统,通过接收货币代码(3 个字母)来 return 官方货币符号,这意味着一旦函数接收到美元,它就会 return $ 符号世界上所有的分母也是如此。

我用我发布的函数得到的结果是错误的(我想得到美元的 $ 而不是 د.إ. 的 AED)。我不知道为什么? 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'));

您只需要将您的字符串与 json 解码密钥相匹配。

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

        }
        return null;
    }

DEMO

或者直接检查索引

function searchJson( $obj, $value ) { 
        $data = isset($obj[$value])?$obj[$value]:null;        
        return $data;
    }