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

如何在Laravel中从索引不同的对象数组中提取数值最高的2项

Laravel 保留对象数值最高N个字段实现方案

直接使用Laravel内置的Collection集合类处理即可,是框架原生支持的最优方案,无需引入额外依赖,代码可读性和可维护性都更高。

完整实现代码

// 示例原始JSON输入,你也可以直接传入已有的关联数组
$rawData = '{"res1":158,"res2":97,"res3":99,"res4":103}';

// 第一步:将JSON转为关联数组(如果原始数据已是数组可跳过此步)
$originArr = json_decode($rawData, true);

// 第二步:通过集合链式操作完成需求
$res = collect($originArr)
    ->sortDesc() // 按值从大到小降序排序,自动保留原有键名
    ->take(2) // 取排序后的前2个元素,修改数值可调整保留的字段数
    ->toJson(); // 按需可改为toArray()得到数组格式结果

执行后输出的$res就是你需要的结果:

{"res1":158,"res4":103}

方案优势

  • 支持动态字段的输入场景,不管你原始对象的字段名、字段数量怎么变,都能正确执行
  • 所有逻辑都是Laravel原生封装的方法,符合框架编码规范,不需要自己手写排序逻辑,避免出现键值对应错误
  • 后续调整保留的字段数量只需要修改take()方法的入参即可,扩展性强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:09:02