@ki11k4
Web программист - любитель

Как отсортировать маасив?

Здравствуйте.
Есть база. В базе есть 2 таблицы ( пусть будет tab1 и tab2 ) схожих по строению:
id | name | ... | ... | date_create

Я делаю 2 запроса и сохраняю 2 массива:
$sth1 = $mysqli->query("SELECT * FROM `tab1`");
$sth2 = $mysqli->query("SELECT * FROM `tab2`");

$arr1 = $sth1->fetch_all(MYSQLI_ASSOC);
$arr2 = $sth2->fetch_all(MYSQLI_ASSOC);


И дальше я объеденяю их:
$arr = array_merge($arr1, $arr2);

А теперь сам вопрос. Как при помощи array_multisort(); или иной функцией отсортировать по дате ( то есть `date_create` ) ?

З.Ы. Читал офф документацию, там по моему мнению без бубна не обойтись.
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
SELECT `id`, `date_create`, `some`, `field` FROM (
  (SELECT * FROM `table1` WHERE `cond1` = 'some value')
  UNION ALL 
  (SELECT * FROM `table2` WHERE `cond2` = 'some other value')
ORDER BY `date_create` DESC LIMIT 20) t;
Ответ написан
Комментировать
@ki11k4 Автор вопроса
Web программист - любитель
Решил вопрос вот так
$sth1 = $mysqli->query("SELECT * FROM `tab1`");
$sth2 = $mysqli->query("SELECT * FROM `tab2`");

$arr1 = $sth1->fetch_all(MYSQLI_ASSOC);
$arr2 = $sth2->fetch_all(MYSQLI_ASSOC);

$arr  = array_merge($arr1, $arr2);

foreach ( $arr as $key => $row ) {
	$art[$key] = $row['date_create'];
}

array_multisort($art, SORT_ASC, $arr);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы