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

Laravel中如何计算集合相邻两行数据的百分比变化率

#Laravel 集合新增相邻行百分比变化率字段实现方法

核心逻辑

  • 百分比变化率默认计算公式:(当前元素value - 下一个元素value) / 下一个元素value * 100,可根据业务需求调整计算规则
  • 最后一个元素无相邻下一行,changed值固定为0
  • 内置除0异常处理,避免下一行value为0时报错

实现代码

假设你的原始集合变量为$originalCollection,代码如下:

// map方法返回新集合,不修改原集合;如果需要直接修改原集合,可替换为transform方法
$result = $originalCollection->map(function ($item, $index) use ($originalCollection) {
    // 处理最后一行
    if ($index === $originalCollection->count() - 1) {
        $item['changed'] = 0;
        return $item;
    }
    
    $nextValue = $originalCollection[$index + 1]['value'];
    // 下一行value为0时的兼容处理,可根据业务需求调整默认值
    if ($nextValue == 0) {
        $item['changed'] = 0;
        return $item;
    }
    
    // 计算变化率,此处保留1位小数,可自行调整round方法的精度参数
    $changed = round(($item['value'] - $nextValue) / $nextValue * 100, 1);
    $item['changed'] = $changed;
    
    return $item;
});

兼容说明

如果集合内存储的是对象而非数组,将代码中所有数组取值语法$item['value']、$item['changed']替换为对象属性取值语法$item->value、$item->changed即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:45:05