@Artqookie

Сортировка в PHP?

Есть такой код:

$array = array();

for ($count = 1; (($head = mysql_fetch_array($output1)) and ($text = mysql_fetch_array($output2))); ++$count) {

	$array[$count] = $head[0];
	printf($array[$count]);

	echo "<br />";
	echo "<br />";

	$array[$count] = $text[0];
	printf($array[$count]);

	echo "<br />";
	echo "<br />";
}
return $array;



Он выводит что-то типа:

First title

Fitst text

Second title

Second text

Third title

Third text





Нужно отсортировать в обратном порядке:

Third title

Third text

Second title

Second text

First title

Fitst text





Знаю о функции array_reverse(), но куда не пытался её здесь всунуть, не отсортировывает.
  • Вопрос задан
  • 3781 просмотр
Решения вопроса 1
GomelHawk
@GomelHawk
PHP / Symfony developer
Когда получаешь из БД:

SELECT * FROM table_name WHERE (выражение) [order by field_name [desc][asc]]

ORDER — там и сортируешь по возрастанию или по убыванию (ASC или DESC)

В твоем случае так понимаю получение $output1 и $output2 так делаешь…
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
adminimus
@adminimus
в SQL не судьба все это засунуть? Проще же
Ответ написан
slang
@slang
Это всё конечно не совсем идеологически правильно, но Вам нужно заменить последнюю строку на:
return array_reverse($array);
Ответ написан
or10n
@or10n
Тогда сразу еще вопрос задам. У каждой статьи должен быть id. Допустим, к первой статье я укажу id=1. Как мне брать из базы максимальный элемент id, повышать его на единицу и присваивать новой статье? Сортировку буду выполнять по id, а для этого нужно, чтобы каждая последующая статья была с id на один больше

Для это служит тип поля autoincrement в БД
Ответ написан
Комментировать
or10n
@or10n
а можно делать for не инкрементным ($i++), а декрементным ($i--)
пример:
for($i=20,$>=0,$i--){
// ololo
}
Ответ написан
@nikita2206
Покажите запросы к БД, которые там делаются. Там наверняка ведь и одним запросом обойтись можно…
Ответ написан
Ваш ответ на вопрос

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

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