簡體   English   中英

兩次使用php array_multisort對同一數組進行排序

[英]Using php array_multisort twice to sort the same array

我有一個大型的多維數組,我想使用array_multisort按日期對它進行兩次排序,並從每種排序中獲取最后3個數組

我可以創建數組的副本,但是當我想要的只是3個數組時,這似乎是一種浪費

$rows = array(
    array(...),
    array(...),
    ...
);

我創建要像這樣排序的數組

foreach($rows as $key => $row) {
    $submit_date[$key] = $row['Submit_Date'];
    $view_date[$key] = $row['View_Date'];
}

在這種迭代中,一切都按我的預期進行

array_multisort($view_date, SORT_DESC, $rows);
$viewed = array_slice(array_unique($rows, SORT_REGULAR), 0, 3, true);

但是在此之后,我得到的結果與我預期的不同

array_multisort($submit_date, SORT_DESC, $rows);
$unlisted = array_slice(array_unique($rows, SORT_REGULAR), 0, 3, true);

我不能對兩個排序數組都進行排序,因為有時$ view_date數組將具有空值。

有沒有一種方法可以使用同一數組按查看日期排序,獲取最后3行,然后按提交日期對數組進行排序,然后獲取最后3行?

這是因為您的第一個多重排序弄亂了$rows的順序。
虛擬數組應該可以解決問題: $temp = $rows;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM