我正在尝试使用PHP解析csv文件,只要我将数字保存为字符串,一切正常。但是,由于我想对嵌套数组的值求和,我需要它们为数字。
我需要修复三个值:
如果我尝试对值返回0使用floatval()或intval()。
示例:$ cost = intval($ column [1]);
我在另一个线程中看到他们使用trim()或ltrim()来清理值。所以我试着用我的数字......
但这只是给了我这个号码的第一个数字,所以我得到了这个......
我尝试过使用“。”和“,”作为小数。
真的无法想出这一个。我能得到的任何帮助都非常感谢!
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 "
}
答案 0 :(得分:3)
您可以按如下方式输入值:
$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];
您正在尝试与2D数组进行交互,就像它是1维一样。
答案 1 :(得分:1)
使用带有floatval的数字格式
$cost = floatval(column[1]);
$cost = number_format($cost, 2);
答案 2 :(得分:1)
如果$column[1]
的值为"20.30"
,您只需将其用于计算,因为当您进行关节炎计算时,php会自动将字符串转换为数字。
例如:
$column[1]="20.30";//$column[1] is string.
$column[1]*=1.0;//Now $column[1] is an float variable..
您还可以使用类似转换:
$a=(float)$column[1]*1;
等等..
答案 3 :(得分:1)
我可能错了......在这种情况下我显然有赌博问题...... 但我相当肯定你正试图做所有这些转化为实际的array()
,而不是string
。
您的打印输出显示4个不同的数组,每个数组都有键/值对。所有这些都与$column
。
如果我不得不猜测,我不应该在Stack Exchange上做什么,我会说尝试一下:
$column[1][1]
而不是现在的
$column[1]
我已经玩了很长时间了,但是这里要吃一粒盐。