php - 无法让字符串数字变成 float 或整数 PHP

标签 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 "
}

最佳答案

您可以按如下方式强制转换值:

$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/

相关文章:

php - Laravel 5.2 中无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]

PHP - 在图像上 mask 多边形

php - 搜索后显示整行

使用模板的 php 邮件

PHP关于单实例连接mysql

php - cookies PHP

javascript - 带有 AngularJS 的 PHPMailer

php - 重新索引数字数组键

php - 如何在 PHP 中使用不同文件名的 .TXT 文件打开

php - Preg_replace 括号之间的空格