关联数组值显示为字符串而不是int

时间:2019-01-04 00:45:06

标签: php arrays

如果这个问题得到回答,我深表歉意。我确实找了一点,但找不到任何东西。

我需要从两个不同的数组中添加相同的值。我有...

$monData = array([mjones] => 50,[total] => 50)
$tueData = array([mjones] => 50,[total] => 50)

我需要将[总计]的总和放入电子邮件中,但是当我这样做

<html>'.$monData['total] + $tueData['total].'</html> 

我收到有关非数字值的错误。我确信这很容易,而且我忽略了一些愚蠢的事情,但是如果不重建整个数组就无法找到任何答案,这将需要大量的工作。

编辑:

对不起,语法错误。错误不是数组,它只是对它们的值求和。我很抱歉,为什么会误导我。

3 个答案:

答案 0 :(得分:4)

您的问题是由于operator precedence引起的,.+运算符具有相同的优先级,因此您的表达式被解释为:

(('<html>' . $monData['total']) + $tueData['total']) . '</html>'

第一个操作产生一个字符串,然后您尝试将其添加到带有+的数字中,这将给您带来非数值错误。使用您的特定值,就像尝试添加'<html>50' + 50

您需要将代码重写为

<html>'.($monData['total'] + $tueData['total']).'</html> 

答案 1 :(得分:0)

尝试这个:

<html>'.(intVal($monData['total]) + intVal($tueData['total])).'</html> 

答案 2 :(得分:0)

正确的代码:

$monData = array('mjones' => 50, 'total' => 50);
$tueData = array('mjones' => 50, 'total' => 50);

然后输入html:

<html><?php echo ($monData['total'] + $tueData['total']); ?></html>

或:

<?php echo '<html>'. ($monData['total'] + $tueData['total']) . '</html>'; ?>