Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] srtowanie tablicy wielowymiarowej według rekordu
TheRiko
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 1
Dołączył: 10.09.2006

Ostrzeżenie: (0%)
-----


Witam serdecznie,

krótko - czy da się posortować taką tablicę, według category_order? W tym przypadku chcę, aby SubKategoria2, wskoczyła w miejsce Subkategorii1.

  1. <?php
  2.  
  3. $tablica[1][category_order] = 3;
  4. $tablica[1][category_id] = 1;
  5. $tablica[1][category_name] = 'Kategoria1';
  6. $tablica[1][subcategory][2][category_order] = '2';
  7. $tablica[1][subcategory][2][subcategory_id] = '2';
  8. $tablica[1][subcategory][2][subcategory_name] = 'SubKategoria1';
  9. $tablica[1][subcategory][6][category_order] = '1';
  10. $tablica[1][subcategory][6][subcategory_id] = '6';
  11. $tablica[1][subcategory][6][subcategory_name] = 'SubKategoria2';
  12. $tablica[3][category_order] = 4;
  13. $tablica[3][category_id] = 3;
  14. $tablica[3][category_name] = 'Kategoria2';
  15.  
  16. echo '<pre>';
  17. print_r($categories);
  18. echo '</pre>';
  19. ?>
Go to the top of the page
+Quote Post
com
post
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


array sort?
Go to the top of the page
+Quote Post
TheRiko
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 1
Dołączył: 10.09.2006

Ostrzeżenie: (0%)
-----


No niestety sortuje mi wtedy tylko gałąź główną, czyli Kategorie. A jak posortować Podkategorie?
Go to the top of the page
+Quote Post
com
post
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


no to musisz napisać funkcje(pętle) żeby przeleciał po dzieciach smile.gif
Go to the top of the page
+Quote Post
TheRiko
post
Post #5





Grupa: Zarejestrowani
Postów: 37
Pomógł: 1
Dołączył: 10.09.2006

Ostrzeżenie: (0%)
-----


No właśnie próbuję i mi nie wychodzi. Próbowałem też funkcji array_multisort i nic.

EDIT

Poradziłem sobie jakoś, można zamknąć, lub skasować temat. Dzięki i sorry za kłopot.

Ten post edytował TheRiko 2.04.2015, 20:26:01
Go to the top of the page
+Quote Post
ctom
post
Post #6





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

Ostrzeżenie: (0%)
-----


jak po pomoc to na forum ale jak rozwiązałeś problem to temat chcesz zamykać - może podzielisz się rozwiązaniem z innymi!

Ten post edytował ctom 2.04.2015, 21:30:30


--------------------
Polecam MyDevil hosting idealny dla deweloperów
Go to the top of the page
+Quote Post
TheRiko
post
Post #7





Grupa: Zarejestrowani
Postów: 37
Pomógł: 1
Dołączył: 10.09.2006

Ostrzeżenie: (0%)
-----


Jakoś inni nie kwapili się, aby pomóc i nikt rozwiązania nie podsunął. Ale ok. Problem polegał na tym, że trzeba było posortować tablicę przed jej wyświetleniem, a nie podczas. Czyli przykładowo, zanim wyświetlimy tablicę używając foreach, należy użyć jeszcze raz foreach w celu posortowania.

Przykład:
  1. <?
  2. //sortowanie tablicy
  3. asort($categories); //sortowanie kategorii
  4. foreach ($categories as $idCat => $category) {
  5. asort($categories[$idCat]['subcategory']); //sortowanie podkategorii
  6. }
  7.  
  8. //wyświetlenie tablicy
  9. foreach ($categories as $idCat => $category) {
  10. //...
  11. foreach ($category['subcategory'] as $idSubCat => $subcategory) {
  12. //...
  13. }
  14. }
  15.  
  16. ?>
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


Cytat(com @ 2.04.2015, 19:57:13 ) *
no to musisz napisać funkcje(pętle) żeby przeleciał po dzieciach smile.gif

A to co to jest? smile.gif
Liczyłeś na gotowca a nie na tym to polega smile.gif
Go to the top of the page
+Quote Post
TheRiko
post
Post #9





Grupa: Zarejestrowani
Postów: 37
Pomógł: 1
Dołączył: 10.09.2006

Ostrzeżenie: (0%)
-----


Nie, męczyłem się z tym od kilku dni, inaczej bym nie pisał. Wcześniej sortowałem w tym drugim foreach, oraz przed foreach, ale bez foreach i dlatego mi nie wychodziło.

Ten post edytował TheRiko 3.04.2015, 10:06:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:46