У меня есть большой многомерный массив, и я хочу, чтобы отсортировать его дважды по дате с использованием array_multisort
и получить последние 3 массивов из каждого родаИспользование PHP array_multisort дважды, чтобы отсортировать тот же массив
я мог бы создать дубликат массива но это, кажется, отходы, когда все, что я хочу, это 3 массивы из него
$rows = array(
array(...),
array(...),
...
);
создать массивы, которые будут отсортированы как этот
foreach($rows as $key => $row) {
$submit_date[$key] = $row['Submit_Date'];
$view_date[$key] = $row['View_Date'];
}
на этой итерации O е сорта, все работает, как я ожидал
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 строки?
Вот что я думал, но надеялся, что я мог бы прибегнуть исходный массив – AdRock
Конечно, можно поставить 'рода ($ строки),' перед каждым Multisort. – WhoIsJohnDoe