【问题标题】:Multiplication with first array value returning 0 always [closed]与第一个数组值相乘总是返回 0 [关闭]
【发布时间】:2014-11-13 07:44:04
【问题描述】:

我正在从数据库67.00€ 中获取一个值。我需要将此值与一个整数相乘。所以,使用php的explode函数将其转换为数组并存储在变量$result中。

print_r()如下:

Array
(
    [0] => 67
    [1] => 00€
)

现在,如果我将此数组的第一个值与任何值相乘,结果始终为 0。 喜欢:

$result[0]*12

我还尝试使用(int) $result[0]intval($result[0]) 将第一个值转换为整数。都输出0

我做错了什么?

【问题讨论】:

  • 谁能解释为什么我得到了反对票?
  • 试试var_dump() 或调试器。
  • var_dump of $result[0] 输出 string 67where as intval($result[0]) 输出 int 0
  • var_dump() 也应该输出字符串的字节长度。

标签: php arrays currency currency-formatting


【解决方案1】:

试试这个:

intval($result[0])* 12

我已经尝试过了,它对我有用。请创建一个新文件并在您的项目以外的本地主机中运行。

test.php

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$str = '67.00$';
$result = explode('.',$str);
print_r($result);

$ans= intval($result[0])*12;    // or  $ans=($result[0])*12;  both worked
echo 'Answer-->'.$ans;   // 804
?>

我不知道你做错了什么。我希望你能从中发现你的错误。

【讨论】:

  • 也试过了。结果还是一样
  • 编辑了我的答案....请尝试。或者分享你的代码然后将很容易调试可能是你做错了什么。这可能是你认为是正确的。
  • 编辑了我的问题以获取更多信息。
  • 更新了我的答案并为我工作。请检查。
  • 它是静态工作的(就像你将67.00$ 存储在$str 中一样),但不是动态的。我从数据库中获取价值,在 print_r() 上,它在浏览器中显示 67.00$
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
相关资源
最近更新 更多