如何在 php 中的每个价格前添加 £(英镑)?
How to add £(pound) before every price in php?
我有两个金额,例如 10-250
我想在每个金额中显示 £(英镑)符号,并在 hyphen
和 amount
之间给出一个 space
它看起来喜欢 £10 - £250
请建议我在每个价格金额中添加 £ 的任何正则表达式。
ex : -
1-10 = £1 - £10
10-20-30 = £10 - £20 -£30
500-600-800 = £500 - £600 - £800
编辑:
Code:
//$priceStr = urldecode($this->params['named']['price']);
$priceStr = '10-250';
$getExplodePrice = explode('-',$priceStr);
foreach($getExplodePrice as $newPrice){
$price[] = '£'.$newPrice.' -';
}
echo implode(' ',$price);
这应该适合你:
(这里我只是用preg_replace()
给数字加了一个井号,连字符两边加了空格)
<?php
$str = "10-20-30";
echo $str = preg_replace("/(\d+)(-)?/", "£ ", $str);
?>
输出:
£1 - £10
£10 - £20 - £30
£500 - £600 - £800
使用这个不会重新添加任何英镑符号的正则表达式:
(?<!£)\b(\d+)\b
参见 demo here。
演示代码:
$re = "/(?<!£)\b(\d+)\b/";
$str = "1-10\n10-20-30\n500-600-800\n£500";
$subst = "£";
$result = preg_replace($re, $subst, $str);
看,£500
没有替换成 ££500
你不需要正则表达式:
// 500-600-800 to £500 - £600 - £800
echo convert('500-600-800');
function convert($str)
{
$parts = explode('-', $str);
return '£'.implode(' - £', $parts);
}
您可能要考虑使用 £
而不是 £
,这取决于您在做什么。
您可以使用 explode()
和 array_reduce()
:
$priceStr = '10-250-2';
echo array_reduce(explode('-', $priceStr), function($result, $item) {
if(!empty($result)) {
return "$result - £$item";
} else {
return "£$item";
}
});
我有两个金额,例如 10-250
我想在每个金额中显示 £(英镑)符号,并在 hyphen
和 amount
之间给出一个 space
它看起来喜欢 £10 - £250
请建议我在每个价格金额中添加 £ 的任何正则表达式。
ex : -
1-10 = £1 - £10
10-20-30 = £10 - £20 -£30
500-600-800 = £500 - £600 - £800
编辑:
Code:
//$priceStr = urldecode($this->params['named']['price']);
$priceStr = '10-250';
$getExplodePrice = explode('-',$priceStr);
foreach($getExplodePrice as $newPrice){
$price[] = '£'.$newPrice.' -';
}
echo implode(' ',$price);
这应该适合你:
(这里我只是用preg_replace()
给数字加了一个井号,连字符两边加了空格)
<?php
$str = "10-20-30";
echo $str = preg_replace("/(\d+)(-)?/", "£ ", $str);
?>
输出:
£1 - £10
£10 - £20 - £30
£500 - £600 - £800
使用这个不会重新添加任何英镑符号的正则表达式:
(?<!£)\b(\d+)\b
参见 demo here。
演示代码:
$re = "/(?<!£)\b(\d+)\b/";
$str = "1-10\n10-20-30\n500-600-800\n£500";
$subst = "£";
$result = preg_replace($re, $subst, $str);
看,£500
没有替换成 ££500
你不需要正则表达式:
// 500-600-800 to £500 - £600 - £800
echo convert('500-600-800');
function convert($str)
{
$parts = explode('-', $str);
return '£'.implode(' - £', $parts);
}
您可能要考虑使用 £
而不是 £
,这取决于您在做什么。
您可以使用 explode()
和 array_reduce()
:
$priceStr = '10-250-2';
echo array_reduce(explode('-', $priceStr), function($result, $item) {
if(!empty($result)) {
return "$result - £$item";
} else {
return "£$item";
}
});