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

按order_date对二维数组去重仅保留最后一个子数组的实现方案

解决思路

核心逻辑是利用数组键的唯一性,正序遍历订单条目时用order_date作为临时数组的键,后续出现的同日期条目会自动覆盖先出现的,最终就能拿到每个日期对应的最后一条记录。
同时注意你的原数组还包含total、orders、avg三个汇总字段,需要先拆分订单数据和汇总字段处理,避免汇总数据被误操作。

实现代码(PHP)

// 示例原数组,替换为你实际的数组变量
$originalArray = [
    // 你的原始数组内容
];

// 拆分数字索引的订单列表和字符串键的汇总字段
$orderList = [];
$summary = [];
foreach ($originalArray as $key => $item) {
    is_int($key) ? $orderList[] = $item : $summary[$key] = $item;
}

// 按order_date去重,保留最后出现的条目
$temp = [];
foreach ($orderList as $order) {
    $temp[$order['order_date']] = $order;
}
// 重置为连续数字索引
$processedOrders = array_values($temp);

// 合并得到最终结果
$result = array_merge($processedOrders, $summary);

// 输出验证
print_r($result);

处理后结果说明

运行后你得到的$result中,21-02、21-04对应的都是原数组中最后出现的条目,和你要求的移除索引1、4的效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:45:03