$query1 = $this->db
->or_like($array_search)
->limit(100)
->get('movie');
$query2 = $this->db
->or_like($array_search)
->limit(100)
->get('serial');
$query3 = $this->db
->or_like($array_search)
->limit(100)
->get('animation');
//результаты по каждой таблице
return [
'movie' => $query1->result_array(),
'serial' => $query2->result_array(),
'animation' => $query3->result_array(),
];
//все результаты одним списком
/*
return array_merge(
$query1->result_array(),
$query2->result_array(),
$query3->result_array()
);
*/
<?php
$array = [
4 => ["autor_id" => 4, "count_msg" => 5, "last_date" => 1606350743, "unread_pm" => 0],
2 => ["autor_id" => 2, "count_msg" => 7, "last_date" => 1606350737, "unread_pm" => 0],
6 => ["autor_id" => 6, "count_msg" => 29, "last_date" => 1606350733, "unread_pm" => 0],
1 => ["autor_id" => 1, "count_msg" => 36, "last_date" => 1606350726, "unread_pm" => 1],
3 => ["autor_id" => 3, "count_msg" => 8, "last_date" => 1606349427, "unread_pm" => 0],
];
array_multisort(
array_column($array, 'unread_pm'), SORT_DESC,
array_column($array, 'last_date'), SORT_DESC,
$array
);
print_r($array);
В таком случае чтобы решить задачу по скачиванию - раз есть NFS то монтируете нужную папку как локальный диск (локальная папка) и можно отдавать файлы напрямую через nginx/apache/iis как если бы эти файлы были доступны локально.
Так же по NFS можно удалять создавать и работать с удалённой папкой стандартными функциями PHP - unlink/rmdir/fwrite и тд