这个让我感到困惑
试图从字符串中删除美元符号被证明是不可能的,这是怎么回事?
这是我必须使用的:
array(2) { [0]=> string(10) "$18.95" [1]=> string(11) " $17.06" }
这是我尝试过的
-
floatval($price[0]);
-
str_replace('$','',$price[0]);
-
ltrim($price[0],'$');
-
floatval(ltrim($price[0],'$'));
-
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