我有一个大的多维数组,我希望使用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行?
答案 0 :(得分:0)
这是因为您的第一个多重排序搞砸了$rows
的顺序
虚拟数组应该可以做到这一点:$temp = $rows;