Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP] sortowanie tablicy wielowymiarowej przez asocjacyjną

Napisany przez: czaro123 25.02.2014, 15:53:54

Witam,
błądze we mgle i stąd moję pytanie. kod poniżej:

  1. $ccc = http://www.php.net/array(http://www.php.net/array("zor",1,2,3,4,5,6,7,8,9,10,11,12), http://www.php.net/array("roz",5,2,4,4,5,6,7,8,9,10,11,12), http://www.php.net/array("ozr",9,2,9,4,5,6,7,8,9,10,11,12));
  2.  
  3. $sortowanie = http://www.php.net/array('a','k','e','h','b','l','f','i','c','m','g','j','d');
  4.  
  5. foreach ($ccc as $war){
  6. $aaa[] = http://www.php.net/usort($ccc[$war], $sortowanie);
  7. }
  8. http://www.php.net/echo '<pre>';
  9. http://www.php.net/print_r($aaa);
  10. http://www.php.net/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.

Napisany przez: owca_82 25.02.2014, 17:19:00

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

Napisany przez: czaro123 26.02.2014, 09:18:17

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 = http://www.php.net/array(http://www.php.net/array('zor',4,8,12,2,6,10,3,7,11,1,5,9), http://www.php.net/array('roz',4,8,12,2,6,10,4,7,11,5,5,9), http://www.php.net/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

Napisany przez: vermis 26.02.2014, 09:40:59

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.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)