Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nietypowe sortowanie tablicy
Forum PHP.pl > Forum > PHP
Civil
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.
Hazel
Nie musisz usortem, to nie jest szczególnie przydatna funkcja...
  1. <?php
  2. $tbl = array();
  3. foreach ($tablica as $zmienna)
  4. {
  5. $srt = explode ('-', $zmienna);
  6. array_push ($tbl, $srt[0]);
  7. }
  8. sort($tbl);
  9. ?>


W przykładzie Twoją bazową tablicą jest $tablica, więc nie musisz się bać, że nie odzyskasz już starej tablicy - ona pozostaje bez zmian.
Neojawor
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
Hazel
A gdzie on napisał, że te dane przechowuje w bazie? tongue.gif
Czy ja już ślepy jestem?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.