如何在 php 中的每个价格前添加 £(英镑)?

How to add £(pound) before every price in php?

我有两个金额,例如 10-250 我想在每个金额中显示 £(英镑)符号,并在 hyphenamount 之间给出一个 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);
}

您可能要考虑使用 &pound; 而不是 £,这取决于您在做什么。

您可以使用 explode()array_reduce()

$priceStr = '10-250-2';
echo array_reduce(explode('-', $priceStr), function($result, $item) {
    if(!empty($result)) {
        return "$result - £$item";
    } else {
        return "£$item";
    }
});