You need to enable JavaScript to run this app. PHP使用intdiv函数拆分数字为指定数组时结果不符合预期如何解决
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用intdiv函数拆分数字为指定数组时结果不符合预期如何解决

问题原因

  • 循环内直接修改了原始数值$nr,且每次仅保留除法得到的商作为新的$nr,第一次运算后$nr就被替换为高位值123456,后续所有运算都基于这个错误值计算,自然得不到正确结果。
  • 拆分逻辑缺少取余步骤:提取完当前段的高位值后,需要对当前除数取余,得到剩下的低位数值供下一段拆分使用。

修正代码

$nr = 1234567890;
$nrSplit = array('a'=>10000,'b'=>100,'c'=>1);
        
$res = array();
$tempNr = $nr; // 用临时变量存储待拆分值,避免修改原始数值
foreach ($nrSplit as $key=>$curr)
{
    $res[$key] = intdiv($tempNr, $curr);
    $tempNr = $tempNr % $curr; // 取余得到剩余低位,用于后续拆分
}

运行上述代码得到的输出就符合预期:

Array
(
    [a] => 123456
    [b] => 78
    [c] => 90
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 06:24:03