无法获取字符串数字成为浮点数或整数PHP

时间:2013-12-08 13:05:06

标签: php

我正在尝试使用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 "
}

4 个答案:

答案 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);

http://php.net/manual/en/function.number-format.php

答案 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]

我已经玩了很长时间了,但是这里要吃一粒盐。