Использование 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 строки?

0

Решение

Это потому, что ваш первый мультисорт испортил порядок $rows,
Фиктивный массив должен сделать свое дело: $temp = $rows;

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector