ShuanghongS 1 개월 전
부모
커밋
d013ac3fc6
1개의 변경된 파일31개의 추가작업 그리고 1개의 파일을 삭제
  1. 31 1
      service/ocean_order.class.php

+ 31 - 1
service/ocean_order.class.php

@@ -2417,8 +2417,12 @@ class ocean_order {
                                 "date"=>$est_delivery_date,
                                 "country"=>$location_code,
                                 "timezone"=>$_delivery['timezone']);
+                        $originalArray = $EDIDate['containerStatusData'][$cskey]['content'];
+                        //$this->insertInDescendingOrder($originalArray, $contentTemp);
+                        array_unshift($originalArray, $contentTemp);
+                        //排序后重新赋值
+                        $EDIDate['containerStatusData'][$cskey]['content'] = $originalArray;
 
-                        $EDIDate['containerStatusData'][$cskey]['content'][] = $contentTemp;
                     }
                 }
                 //添加simplexData的delivery
@@ -2813,5 +2817,31 @@ class ocean_order {
         }
         return $result;
     }
+
+    private function insertInDescendingOrder(&$array, $newItem) {
+        // 标准化并解析新项的日期
+        $newDateStr = preg_replace('/\s+/', ' ', trim($newItem['date']));
+        $newTimestamp = strtotime($newDateStr);
+        if ($newTimestamp === false) {
+            // 无效日期,可选择丢弃或抛异常
+            return false;
+        }
+
+        // 遍历已排序数组(倒序:最新 → 最旧)
+        for ($i = 0; $i < count($array); $i++) {
+            $existingDateStr = preg_replace('/\s+/', ' ', trim($array[$i]['date']));
+            $existingTimestamp = strtotime($existingDateStr);
+
+            // 如果新项比当前项更新(时间戳更大),就插在这里
+            if ($newTimestamp > $existingTimestamp) {
+                array_splice($array, $i, 0, [$newItem]);
+                return true;
+            }
+        }
+
+        // 如果没找到更旧的位置,说明新项是最旧的,插到末尾
+        $array[] = $newItem;
+        return true;
+    }
 }
 ?>