将货币字符串转换为数字 Drupal Views / PHP
Convert a currency string to a number Drupal Views / PHP
我正在将 CiviCRM (MySQL) 数据库中的一个字段输入货币的 Drupal 视图:
€ 350.00
如何将此货币/字符串转换为数字格式以对其进行数学运算?
我试过了
从显示中删除该字段并将其输入全局数学字段以便 "clean" 它但它仅显示为零(它是一个字符串,因此数学字段不能阅读它)
将其输入全局文本字段会产生与上述相同的输出
关闭字段本身和我输入的全局数学字段中的所有格式,输出为零,因为它仍未被识别为数字
您可以使用这样的函数:
function extractNumber($str) {
return preg_replace('/[^0-9.]+/i','',$str);
}
echo extractNumber('€ 350.00');
这将导致:'350.00',它是数字。对于“€ 1,350.00”,它将 return“1350.00”。
您需要 2 个步骤:
- 安装 Views PHP (7.x-2.x-dev) - 这会给你一个全局
PHP 视图中的字段
排除原始字段(比如 field_currency
),它在视图中显示不显示的值(使用复选框),然后在附加 [=32] 中使用排除字段的值=] 字段:
- 输入值代码:
preg_match("#([0-9\.]+)#", $row->field_currency, $match); return $match[0];
- 在输出代码中:
<?php echo $value; ?>
我正在将 CiviCRM (MySQL) 数据库中的一个字段输入货币的 Drupal 视图:
€ 350.00
如何将此货币/字符串转换为数字格式以对其进行数学运算?
我试过了
从显示中删除该字段并将其输入全局数学字段以便 "clean" 它但它仅显示为零(它是一个字符串,因此数学字段不能阅读它)
将其输入全局文本字段会产生与上述相同的输出
关闭字段本身和我输入的全局数学字段中的所有格式,输出为零,因为它仍未被识别为数字
您可以使用这样的函数:
function extractNumber($str) {
return preg_replace('/[^0-9.]+/i','',$str);
}
echo extractNumber('€ 350.00');
这将导致:'350.00',它是数字。对于“€ 1,350.00”,它将 return“1350.00”。
您需要 2 个步骤:
- 安装 Views PHP (7.x-2.x-dev) - 这会给你一个全局 PHP 视图中的字段
排除原始字段(比如
field_currency
),它在视图中显示不显示的值(使用复选框),然后在附加 [=32] 中使用排除字段的值=] 字段:- 输入值代码:
preg_match("#([0-9\.]+)#", $row->field_currency, $match); return $match[0];
- 在输出代码中:
<?php echo $value; ?>
- 输入值代码: