![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 874 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam mały problemik i prosiłbym o pomoc w jego rozwiązaniu: o to kod problemu:
Działający kod znajduje się tutaj: http://www.swos.pl/temp/sortowanie.php Wizja moja jest następująca: Cała lista jest sortowane wg. wartości NUM3, ale tylko dla pierwszych 5 NAJWYŻSZYCH wartości, a potem jest sortowanie wg. NUM1. W tej chwili wyniki są w połowie spaczone. Gdyż sortuje wg. NUM3, ale sortowanie wg. NUM1 nie działa, a nie można zrobić żeby sortowało najpierw wg. NUM1, bo wteyd zostaną spaczone wyniki NUM3(suma NUM1 i NUM2) Jakie będzie najlepsze rozwiązanie ? Moje pomysły zawodzą. Ten post edytował Tomplus 28.07.2008, 13:08:01 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
1. Odnajdujesz 5 najwyższych wartości i referencje (albo indeksy) do nich wkładasz do tablicy 1.
2. Pozostałe wartości (albo referencje/indeksy) dajesz do tablicy 2. 3. Sortujesz tablicę 1 według NUM3 4. Sortujesz tablicę 2 według NUM1 5. Scalasz obie tablice z powrotem. Możesz to zrobić nawet funkcjami PHP, tylko musisz sobie własną funkcję porównującą napisać. Mam nadzieję, że dobrze zrozumiałem Twoje intencje ![]() -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 874 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
DObrze zrozumiałeś, ale się zastanawiałem nad ulepszeniem sortowania przed while(), Czy da się coś takiego zrobić ?
Dodałem do całego skryptu:
oraz zmodyfikowałem pętle do takich postaci:
[edit] Usunąłem moje stare zapytanie, bo jest już nie aktualne, a nikt nie odpowiedział. Problem rozwiązany w sposób prosty. Między dwoma while() umieściłem array_splice ($a, 5);, dzięki tej funkcji ucina tablicę do tylko 5 wpisów i drugie sortowanie może tylko posortować tą pozostałą część wpisów. Inaczej mówiąc. O to chodziło. Ten post edytował Tomplus 29.07.2008, 11:29:36 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 05:38 |