Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка 
:(
    Опции темы
rax
Дата 23.2.2005, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 4.6.2004
Где: Егорьевск

Репутация: нет
Всего: 1



Доброго всем времени суток. Подскажите плз, новичку в пхп, как поудобнее решить такой трабл:
у меня есть 2 массива, например названия команд и их очки. Мне нужно отсортировать очки по убыванию (rsort()) и при этом, чтобы названия тоже отсортировались
PM MAIL WWW ICQ AOL YIM MSN   Вверх
IZ@TOP
Дата 23.2.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Объеденить массивы и сортировать данные. Или еще вариант: сортировка, затем отбирать названия команд по ключу.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
rax
Дата 23.2.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 4.6.2004
Где: Егорьевск

Репутация: нет
Всего: 1



А я вот думаю, как автоматически каждой команде присвоить ключ? Ведь если их много или они считываются с базы, руками все это не задашь ($cmd=array("a"=>"bla", "b"=>"blu");)
PM MAIL WWW ICQ AOL YIM MSN   Вверх
yUAC
Дата 23.2.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 9.6.2004

Репутация: 3
Всего: 3



ИМХО самое лучшее решение - сделать массивы с одинаковыми ключами. В таком случае нужно будет лишь отсортировать один из массивов, а для получения данных из второго нужно будет запрашивать элемент из второго массива с ключем первого. Если непонятно объяснил, могу еще раз, более подробнее рассказать.
PM MAIL   Вверх
rax
Дата 24.2.2005, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 4.6.2004
Где: Егорьевск

Репутация: нет
Всего: 1



На самом деле я зашел в полный тупик smile Задача довольно тривиальная. Есть 8 футбольных команд, соответственно у них очки, кол-во игр, голы и пропущ. Сортировка тут не простая. Сначала сортируем по очкам, потом если они равны по разнице забитых и пропущ, затем по кол-ву игр. Обычная футбольная таблица. Все данные хрянятся в текстовых файлах. И при выводе сортируется по убыванию. Вот мое решение проблемы.
Код


#swap() меняет местами $i  $j элементы.
#массивы:

#$cont-массив очков
#$gol-кол-во забитых мячей
#$fal-пропущ
#$gms-кол-во сыграных матчей

$n=count($cont);

for ($i=0; $i<=$n-4; $i++) {
 for ($j=$i+1; $j<=$n; $j++) {
   if ($cont[$j]>$cont[$i]) swap($i,$j);
   if ($cont[$j]==$cont[$i]) {
    if (($gol[$j]-$fal[$j])>($gol[$i]-$fal[$i])) swap($i,$j);
    if (($gol[$j]-$fal[$j])==($gol[$i]-$fal[$i])) {
     if ($gms[$j]>$gms[$i]) swap($i,$j);
    }
   
 }
 
 
}

# тут вывод в таблицу

[b]

Вся беда в том, что алгоритм игнорирует последнюю строку, в итоге получается, что худшая каманда всегда на предпоследнем месте. В чем дело, никак не могу разобраться..
Может подскажите другой вариант развития событий?
PM MAIL WWW ICQ AOL YIM MSN   Вверх
Mal Hack
Дата 24.2.2005, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



array_multisort()'
PM ICQ   Вверх
Joes
Дата 24.2.2005, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 15.11.2004

Репутация: -2
Всего: 7



http://forum.const.uz/index.php?showtopic=7050
Загдяни вот сюда... По-моему что-то из твоей оперы... Давно обсуждали, так что лень вспоминать smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.