为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据函数php的值自动生成number_format?

如何根据函数php的值自动生成number_format?

PHP
慕慕森 2021-04-13 13:15:15
我有以下创建函数的理论,该函数可让您根据货币自动将格式添加到数字中。$price = 19999;$curr = 'EUR';function DinersFormat($price, $curr){    $currencies['EUR'] = array(2, ',', '.');        // Euro    $currencies['ESP'] = array(2, ',', '.');        // Euro    $currencies['USD'] = array(2, '.', ',');        // US Dollar    $currencies['COP'] = array(2, ',', '.');        // Colombian Peso    $currencies['CLP'] = array(0,  '', '.');        //  Chilean Peso}除了可以很好地替代money_format()功能或NumberFormatter功能之外,它看起来也很优雅因此,我的想法是能够将格式类型发送给函数number_format(),例如:在线执行演示$price = 1000;$curr = "0, ',', ' '";$money = number_format($price, $curr);//$money = number_format($number, 0, ',', ' ')echo $money;但是结果不正确,1,000并出现错误信息:PHP注意:在第6行/home/NC7DpL/prog.php中遇到的格式不正确的数值-> $money = number_format($price, $curr);预期的正确输出是 1 000然后如何number_format()从函数内部的数组中生成,这样我就可以以这种方式DinersFormat($price, $curr);或以这种方式使用它DinersFormat($price, $curr='EUR');
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

一种简单的解决方法是使用参数拆包运算符(...)并像DinersFormat函数中那样传递您拥有的数组...


$price = 1000;

$curr = array(2, ',', '.');


$money = number_format($price, ...$curr);

echo $money;


1.000,00

要将其包含在函数中,您可以执行以下操作...


function DinersFormat($price, $curr){

    // Array of formats against the currency

    $currencies = ['EUR' => array(2, ',', '.'),        // Euro

                'ESP' => array(2, ',', '.'),        // Euro

                'USD' => array(2, '.', ','),        // US Dollar

                'COP' => array(2, ',', '.'),        // Colombian Peso

                'CLP' => array(0,  '', '.')];        //  Chilean Peso


    return number_format($price, ...$currencies[$curr]);

}


$price = 1000;

$curr = 'EUR';

$money = DinersFormat($price,$curr);

echo $money;


查看完整回答
反对 回复 2021-04-23
  • 1 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信