这让我感到困惑
试图从字符串中删除美元符号被证明是不可能的, 什么错了?
以下是我必须使用的内容:
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
没有什么工作......为什么?
`
答案 0 :(得分:10)
你说:
floatval(preg_replace('/ [^ \ d。] /','',$ price [0]))
但是它添加了“36” 数字 - 而不是18.95我得到3618.95
我想到你的价值前面没有$
符号,$
代表$
。
为了查看我的猜测是否正确,请在终端而不是浏览器中打印数组。或者查看页面的来源。
在这种情况下,你可以这样做:
$val = preg_replace('/$/', '', $val);
或者更通才:
$val = preg_replace('/&.*?;/', '', $val);
答案 1 :(得分:2)
这个很好用:
$input = "$18.95";
$output = floatval(ltrim($input, '$'));
$output += 36;
输出:
float 54.95
答案 2 :(得分:1)
如果您确定$将始终位于第一位,那么简单而有效
substr($string,1);
应该做的工作
答案 3 :(得分: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
)
答案 4 :(得分:0)
试试这个
<?php
$price = '$12.00';
$var = str_replace('$','',$price);
echo $var;
?>
答案 5 :(得分:0)
使用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");
答案 6 :(得分:0)
如果您遇到Unicode支持问题(使用substr
出现的奇怪符号),如果符号始终是第一个,这将有效。
$var = ltrim($price[0],'$')