使用php array_multisort对同一个数组进行两次排序



我有一个大型多维数组,我想使用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;

相关内容

  • 没有找到相关文章

最新更新