![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 1 Dołączył: 19.09.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam tablicę, do której trafią wartości w trzech formatach:
2121 (sama liczba) 2121-1 (liczba - liczba) 121-1212-1211 (liczba - liczba - liczba) w jaki sposób posortować tą tablicę aby została posortowana wg pierwszej liczby (bez znaczenia czy dalej jest myślnik) np. dla 4 wartości: 2121 124-2 150-1245-1265 134 wyskoczyło by 124-2 134 150-1245-1265 2121 ? Pozdrawiam. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie musisz usortem, to nie jest szczególnie przydatna funkcja...
W przykładzie Twoją bazową tablicą jest $tablica, więc nie musisz się bać, że nie odzyskasz już starej tablicy - ona pozostaje bez zmian. Ten post edytował Hazel 2.09.2007, 20:57:32 -------------------- ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 106 Pomógł: 1 Dołączył: 2.12.2005 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
po stronie PHP zrobiłbym to tak, że explodowałbym te rekordy znakiem "-" i sortował tylko te pierwsze wyrazy. Po posortowaniu trzeba by połączyć właściwie te rozdzielone wyrazy. Nie napiszę tego, bo nie mam czasu, ale ideowo tak to widzę. Po stronie SQL nie mam pojęcia jak to zrobić, ale możesz poszukać coś o funkcjach pobierających tylko kilka pierwszych znaków danego rekordu (o ile takie istnieją) i wtedy sortować.
A tak nawiasem mówiąc to przechowywanie danych w taki sposób oznacza, że masz bazę nieznormalizowaną - czytaj tutaj |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
A gdzie on napisał, że te dane przechowuje w bazie?
![]() Czy ja już ślepy jestem? -------------------- ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 16:41 |