I am using the following hook_views_pre_render
to merge 2 views_data_export views.
function hook_views_pre_render(ViewExecutable $view) {
if ($view->id() == 'commerce_orders' && $view->current_display == 'data_export_1') {
$first_extra_results_view = Views::getView('commerce_orders');
$first_extra_results_view->setDisplay('data_export_2');
$first_extra_results_view->execute();
$first_extra_results_view->result;
$view->result = array_merge($view->result, $first_extra_results_view->result);
}
}
Both of the views are sorted by order_number, but array_merge is just stacking them on one another (as expected).
$view order_1
$view order_2
$first_extra_results_view order_1
$first_extra_results_view order_2
I would like to know how to take the new $view->result
and re-apply the sort criteria so that the output of the $view->result
would be this:
$view order_1
$first_extra_results_view order_1
$view order_2
$first_extra_results_view order_2
I am able to get the order number for each result, but I don't know how to sort the view results by those order numbers:
foreach ($results as $key => $value) {
$order_number = $value->commerce_order_order_number;
}