Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie tablicy asocjacyjnej
Forum PHP.pl > Forum > Przedszkole
Gość_pawel
mam tablicę zorganizowaną w sposób:

for $i
{
$tablica['tytuł'][$i] = zmienna z bazy;
$tablica['podtytul'][$i] = zmienna z bazy;
itd...
}

jak posegregować taką tablicę według np 'tytul'. (nie chcę odwracać kolejności podtablic 'tytul'<>$i co by ulatwilo sprawę). pewnie trzeba zastosować jakiś UASORT, ale nie bardzo wiem jak spowodować, żeby sortowanie tytułu pociągnęło za soba zmiany w podtytule itd.
mario
a nie lepiej będzie zamiast
  1. <?php
  2. for $i
  3. {
  4. $tablica['tytuł'][$i] = zmienna z bazy;
  5. $tablica['podtytul'][$i] = zmienna z bazy;
  6. itd...
  7. }
  8. ?>

zorganizować tablicę tak?
  1. <?php
  2. for $i
  3. {
  4. $tablica[$i]['tytul']['podtytul'] = zmienna z bazy;
  5. }
  6. ?>
wtedy masz wszystko w jednej tablicy wielowymiarowej i sortowanie jest o wiele łatwiejsze.
Guest
Chodzi o to ze calosc uzywam potem w templatsach, a moja kolejnosc jest duzo wygodniejsza tam. Zreszto mam już taki układ uzyty w kodzie kilkadziesiąt razy, więc wolę raz napisać skomplikowańsze sortowanie niż przeszukiwać i poprawiać działający kod kilka godzin. Wiem że taka tablica obsłużona była by standardowym uasortem, ale mi chodzi o opsotrowanie takiego dziwadła jak opisałem.
Peter Riley
Cytat(Gość_pawel @ 2005-05-07 17:18:16)
jak posegregować taką tablicę według np 'tytul'. (nie chcę odwracać kolejności podtablic 'tytul'<>$i co by ulatwilo sprawę). pewnie trzeba zastosować jakiś UASORT, ale nie bardzo wiem jak spowodować, żeby sortowanie tytułu pociągnęło za soba zmiany w podtytule itd.

ORDER BY przy wyciaganiu z bazy, albo array_multisort:

  1. <?php
  2.  
  3. array_multisort($tablica['tytul'],SORT_ASC,$tablica['podtytul']);
  4.  
  5. ?>
Gość_pawel
Dziękuję bardzo. dokładnie o to chodziło. W sql nie moglem ORDER zadac, bo to jest zbiór z kilku tabel, wedłóg rożnych kryteriów wyciągany i dopiero po całym pobraniu mogę to segregować. jeszcze raz dziękuję.
Gość_pawel
Mam jeszcze jedno pytanie. jak zmusić multisortowanie do prawidłowego traktowania polskich liter??
Peter Riley
Cytat(Gość_pawel @ 2005-05-08 11:00:33)
Mam jeszcze jedno pytanie. jak zmusić multisortowanie do prawidłowego traktowania polskich liter??

Nie chce mi sie sprawdzac, ale sprobuj:
setlocale(LC_ALL, 'pl_PL');
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.