使用php array_multisort两次对同一个数组

时间:2015-08-18 16:07:53

标签: php arrays multidimensional-array 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行?

1 个答案:

答案 0 :(得分:0)

这是因为您的第一个多重排序搞砸了$rows的顺序 虚拟数组应该可以做到这一点:$temp = $rows;