我正在尝试用 PHP 解析一个 csv 文件,只要我将数字保留为字符串,一切正常。但是,由于我想对嵌套数组的值求和,因此我需要它们是数字。
我需要修复三个值:
- $column[1] 是成本并且包含小数(例如 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 "
}
最佳答案
您可以按如下方式强制转换值:
$cost = (double) $column[1];
$clicks = (int) $column[2];
$conversions = (int) $column[3];
http://www.php.net/manual/en/language.types.type-juggling.php
如果您要格式化 double ,请执行以下操作:
$cost = number_format($column[1], 2);
编辑:感谢您提供 var_dump,试试这个。
$cost = (double) $column[0][1];
$clicks = (int) $column[0][2];
$conversions = (int) $column[0][3];
您正在尝试与二维数组进行交互,就好像它是一维的一样。
关于php - 无法让字符串数字变成 float 或整数 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20453730/