【发布时间】:2013-12-08 21:40:21
【问题描述】:
我正在尝试使用 PHP 解析 csv 文件,只要我将数字保留为字符串,一切正常。但是,由于我想对嵌套数组的值求和,所以我需要它们是数字。
我需要修复三个值:
- $column[1] 是 cost 并且包含小数(例如 20.30)
- $column[2] 是点击次数(例如 15)
- $column[3] 是转化次数(例如 3)
如果我尝试对它们返回 0 的值使用 floatval() 或 intval()。
示例:$cost = intval($column[1]);
我在另一个线程的某个地方看到他们使用 trim() 或 ltrim() 来清理值。所以我在我的号码上试了一下......
- $cost = intval(trim($column[1]));
- $clicks = intval(trim($column[2]));
- $conversions = intval(trim($column[3]));
但这只是给了我数字的第一个数字,所以我得到了这个..
- 成本:2(而不是 20.30)
- 点击次数:1(而不是 15 次)
- 转化次数:3(实际上是正确的)
我尝试过同时使用“.”和“,”作为小数。
真的想不通这个。非常感谢我能得到的任何帮助!
结构:
array(4) {
[0]=> string(21)"avslag l�n"[1]=> string(11)"31.32"[2]=> string(3)"1"[3]=> string(5)"0 "
}
array(4) {
[0]=> string(45)"l�na trots kronofogden"[1]=> string(11)"99.12"[2]=> string(3)"2"[3]=> string(5)"0 "
}
array(4) {
[0]=> string(59)"g�r gymnasiet men vill ta l�n"[1]=> string(11)"33.86"[2]=> string(3)"1"[3]=> string(5)"0 "
}
array(4) {
[0]=> string(45)"l�n till enskild firma"[1]=> string(11)"80.07"[2]=> string(3)"1"[3]=> string(5)"1 "
}
【问题讨论】:
-
你能把 var_dump($column) 的结果贴出来吗?
-
看起来你的值中可能有一些不可见的字符(例如空值)......你能做一个值的十六进制转储吗?
-
大声问,你会收到的。您可以编辑您的帖子并将其转换为代码格式,方法是全部选中并点击
CTRL+K -
鉴于
string(11) "33.86"是 5 个可见字符但长度为 11 个字节,那么字符串中肯定有不可见字符...尝试使用str_replace("0x00",'',$value)去除任何null字节.... 对值进行十六进制转储将确认不可见字符的细节 -
如何找到并移除隐藏字符?
标签: php