Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] sortowanie tablicy wielowymiarowej przez asocjacyjną
czaro123
post 25.02.2014, 15:53:54
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 20.01.2014

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


Witam,
błądze we mgle i stąd moję pytanie. kod poniżej:
  1. $ccc = array(array("zor",1,2,3,4,5,6,7,8,9,10,11,12), array("roz",5,2,4,4,5,6,7,8,9,10,11,12), array("ozr",9,2,9,4,5,6,7,8,9,10,11,12));
  2.  
  3. $sortowanie = array('a','k','e','h','b','l','f','i','c','m','g','j','d');
  4.  
  5. foreach ($ccc as $war){
  6. $aaa[] = usort($ccc[$war], $sortowanie);
  7. }
  8. echo '<pre>';
  9. print_r($aaa);
  10. echo '</pre>';


chciałbym posortować każdą z "pod-tablic" w $ccc wg schematu z $sortowanie tzn posortować $sortowanie wg alfabetu i wg tego samego "schematu" posortować "pod-tablice" w $ccc. niestety powyższy kod wyświetla iż używam Illegal offset type. nie wiem jak poprawić ten kod aby otrzymać prawidłowy kod. wartości w $ccc są przykładowe. ilość "pod-tablic" w $ccc nie jest znana, wiadomo że ilość argumentów w każdej "pod-tablicy" jest zawsze 13. ważne: nie interesują mnie klucze w nowopowstałej $aaa tzn powinny one już po sortowaniu wynosić 0,1,2 itd. z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
owca_82
post 25.02.2014, 17:19:00
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 22.04.2012

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


  1. foreach ($ccc as $war){
  2.  
  3. sort($war, SORT_NATURAL);
  4. $aaa[] = $war;
  5.  
  6.  
  7. }
  8.  


Ten post edytował owca_82 25.02.2014, 17:24:39
Go to the top of the page
+Quote Post
czaro123
post 26.02.2014, 09:18:17
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 20.01.2014

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


dzięki, ale nie o to chodziło smile.gif. chciałbym posortować "pod-tablice" w $aaa wg "schematu" jaki uzyskam sortując $sortowanie wg alfabetu. czyli powinno być:
  1. $ccc = array(array('zor',4,8,12,2,6,10,3,7,11,1,5,9), array('roz',4,8,12,2,6,10,4,7,11,5,5,9), array('ozr',4,8,12,2,6,10,9,7,11,9,5,9));

jeśli ktoś ma pomysł jak to zrobić to prośba o podzielenie się tą wiedzą.

odświeżam temat. dodam tylko, iż tablica $sortowanie jest tablicą pomocniczą, została dodana aby wskazać schemat (sortowanie alfabetyczne) wg którego ma być posortowana tablica $ccc
Go to the top of the page
+Quote Post
vermis
post 26.02.2014, 09:40:59
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


Drugi parametr usort() to nazwa funkcji porównującej a nie tablica.
http://pl1.php.net/usort

Musisz sam napisać funkcję która stwierdzi, który element powinien być wyżej. Oczywiście w tej funkcji bazujesz na tablicy $sortowanie.


--------------------
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 Wersja Lo-Fi Aktualny czas: 16.04.2024 - 21:17