You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP提示‘非良好格式数值’,数组赋值行报错原因咨询

问题分析与解决方案

首先,虽然PHP的Notice提示指向第205行的'date' => $wawiData[$i]['date']数组赋值,但实际问题并不在这一行——你这里的日期字符串是完全合法的,单纯的数组赋值操作本身绝不会触发这个类型的Notice。

真正的问题根源

问题出在第210行的金额计算代码:

'amount' => $wawiData[$i]['amount'] * -1,

从你提供的var_dump($wawiData[$i])结果能看到,$wawiData[$i]['amount']是字符串类型的"93,79"——这里用逗号作为小数点分隔符,而PHP在将字符串转换为数值进行乘法运算时,无法识别这种非标准的小数格式,会尝试只取逗号前的部分转换为数值93,同时抛出A non well formed numeric value encountered的Notice。

为什么行号会指向205行?

这是PHP解析器的一个常见小偏差:当你在一个多行的数组定义里出现错误时,解析器有时会把错误关联到数组的起始行(也就是第205行的数组第一个键值对),而不是实际出错的行(第210行)。

验证与修复方法

  1. 验证问题:临时注释掉第210行的金额计算代码,重新运行脚本,如果Notice消失,就可以确认是这一行的问题。
  2. 修复代码:把金额字符串中的逗号替换为小数点,再转换为数值类型后进行计算:
'amount' => (float)str_replace(',', '.', $wawiData[$i]['amount']) * -1,

这样处理后,PHP就能正确识别小数格式,不会再抛出这个Notice了。

内容的提问来源于stack exchange,提问作者Markus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:30:36