从字符串中删除美元符号


remove dollar sign from string

这个让我感到困惑

试图从字符串中删除美元符号被证明是不可能的,这是怎么回事?

这是我必须使用的:

array(2) { [0]=> string(10) "$18.95" [1]=> string(11) " $17.06" }

这是我尝试过的

  1. floatval($price[0]);
  2. str_replace('$','',$price[0]);
  3. ltrim($price[0],'$');
  4. floatval(ltrim($price[0],'$'));
  5. floatval(preg_replace("/^[^0-9'.]/","",$price[0]))

唯一接近的是

floatval(preg_replace('/[^'d'.]/', '', $price[0]))

但它在数字中添加了"36" - 取而代之的是 18.95 我得到了 3618.95

没有任何工作...为什么?

'

你说:

floatval(preg_replace('/[^''d.]/', '', $price[0]))
但它添加了 "36" 到数字 - 取而代之的是 18.95 我得到了 3618.95

在我看来,你的价值观前面没有$标志,但$这是$的代表。

为了查看我的猜测是否正确,请在终端而不是浏览器中打印数组。或者查看页面的来源。

在这种情况下,您可以执行以下操作:

$val = preg_replace('/$/', '', $val);

或者,更通才:

$val = preg_replace('/&.*?;/', '', $val);
这个

效果很好:

$input   = "$18.95";
$output  = floatval(ltrim($input, '$'));
$output += 36;

输出:

float 54.95

如果您在 Unicode 支持方面遇到问题(使用 substr 出现奇怪的符号),如果符号始终排在第一位,这将起作用。

$var = ltrim($price[0],'$')

试试这个

<?php
    $price = '$12.00';
    $var = str_replace('$','',$price);
    echo $var;
    ?>

如果您确定 $ 将始终位于第一个位置,则简单而高效

substr($string,1);

应该做这项工作

使用:

<?php
$price = array( "0"=> "$18.95", "1"=> " $17.06" );
foreach($price as $key=>$value) {
    $price[$key] = trim(str_replace('$','',$value));
}
print_r($price);
?>

输出:

Array
(
    [0] => 18.95
    [1] => 17.06
)

使用 str_replace()

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

http://php.net/manual/en/function.str-replace.php