Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie wielowymiarowych tablic, problemik, tylko dla mocnych
ganimedes
post 23.11.2004, 21:44:06
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 1.04.2004

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


Mam sobie taką tablice...
  1. <?php
  2. (
  3.     [1] => Array
  4.         (
  5.             [0] => 1
  6.             [1] => 1
  7.             [2] => 1
  8.             [3] => 0
  9.         )
  10.  
  11.     [2] => Array
  12.         (
  13.             [0] => 4
  14.             [1] => 1
  15.             [2] => 0
  16.             [3] => 0
  17.         )
  18.  
  19.     [4] => Array
  20.         (
  21.             [0] => 1
  22.             [1] => 0
  23.             [2] => 0
  24.             [3] => 1
  25.         )
  26.  
  27.      [3] => Array
  28.         (
  29.             [0] => 1
  30.             [1] => 1
  31.             [2] => 0
  32.             [3] => 0
  33.         )
  34.  
  35. ?>


Jak posortować ją zeby wyglądała tak
  1. <?php
  2. (
  3.     [2] => Array
  4.         (
  5.             [0] => 4 // chodzi mi o tą wartość 
  6.             [1] => 1 // potem o tą 
  7.             [2] => 0 // next
  8.             [3] => 0 // itd
  9.         )
  10.  
  11.     [1] => Array
  12.         (
  13.             [0] => 1
  14.             [1] => 1
  15.             [2] => 1
  16.             [3] => 0
  17.         )
  18.  
  19.     [3] => Array
  20.         (
  21.             [0] => 1
  22.             [1] => 1
  23.             [2] => 0
  24.             [3] => 0
  25.         )
  26.    
  27.     [4] => Array
  28.         (
  29.             [0] => 1
  30.             [1] => 0
  31.             [2] => 0
  32.             [3] => 1
  33.         )
  34.  
  35. ?>

Próbowałem funkcji
  1. <?php
, nie działa, nie zachowuje kluczy sad.gif
Problem dla speców.. kto rozwiąże ten jest bardzo dobry.

Regards

Ten post edytował ganimedes 23.11.2004, 22:09:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
bela
post 23.11.2004, 22:27:40
Post #2


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


1. czemu masz tak dziwnie klucze poukladane tongue.gif 1, 2, 4, 3 zamiast 0, 1, 2, 3 ?


--------------------
Go to the top of the page
+Quote Post
ganimedes
post 23.11.2004, 22:40:36
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 1.04.2004

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


ehhee te klucze można bez problemu posortować
  1. <?php
  2. ?>
ale nie o to chodzi...
Go to the top of the page
+Quote Post
mike
post 23.11.2004, 22:54:27
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Rozwiązanie jest jak zwyke w manualu.
sort()

Tip: Poszukaj w komentarzach użytkowników, na dole pod opisem funkcji sort(). A dokładnie wypowiedzi użytkowników : Gerhard Conradi i admin at lavacube dot net.

Ten post edytował mike_mech 23.11.2004, 22:56:46
Go to the top of the page
+Quote Post
ganimedes
post 23.11.2004, 23:04:21
Post #5





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 1.04.2004

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


Wow ale żeś mnie oświecił, nic tam nie widze, skomplkowane przykłady.. Masz jeszcze jakieś mądre pomysły??
Go to the top of the page
+Quote Post
mike
post 23.11.2004, 23:12:23
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


No przykro mi, bardziej cię nie oświecę.
Cytat
(...)skomplkowane przykłady (...)

A ty myślałeś że ta funkcja dwie linijki będzie miała?
Masz w manualu gotowca, jak nie potrafisz z niego skożystać to masz problem.
A poza tym jak ci któś napisze to tez powiesz że z trudne i ci nie pasuje.
Więcej pomóc ci nie potrafię , jak podając gotowca.
Go to the top of the page
+Quote Post
ganimedes
post 23.11.2004, 23:26:17
Post #7





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 1.04.2004

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


DeyV Twoja funkcja jest świetna, pierwszą wartość sotuje z pozostawieniem kluczy, powiem szczerze że nie bardzo rozumiem. ALe nie sortuje kolejnych wartości..
Go to the top of the page
+Quote Post
DeyV
post 23.11.2004, 23:31:55
Post #8





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




mam nadzieję, ze mój kod będzie wystarczająco łatwy do zrozumienia.
ps. to nie było zadanie dla "tylko dla mocnych"...

  1. <?php
  2. $aData = Array
  3. (
  4. => Array
  5. (
  6. => 1,
  7. => 1,
  8. => 1,
  9. => 0,
  10. ),
  11.  
  12. => Array
  13. (
  14. => 4,
  15. => 1,
  16. => 0,
  17. => 0,
  18. ),
  19.  
  20. => Array
  21. (
  22. => 1,
  23. => 0,
  24. => 0,
  25. => 1,
  26. ),
  27.  
  28. => Array
  29. (
  30. => 1,
  31. => 1,
  32. => 0,
  33. => 0,
  34. )
  35. );
  36.  
  37. function SortCallback( $aParam1, $aParam2 ) 
  38. {
  39. foreach( $aParam1 as $iWiersz => $mVal )
  40. {
  41. if( !isset( $aParam2[ $iWiersz ] ) or $aParam2[ $iWiersz ] < $mVal )
  42. {
  43. return 1; // odpowiedni rekord w param1 jest większy 
  44. }
  45. elseif( $aParam2[ $iWiersz ] > $mVal ) 
  46. {
  47. return -1; // odpowiedni rekord w param1 jest mniejszy
  48. }
  49. }
  50. return 0; // wszystkie rekordy w parametrach są równe
  51. }
  52.  
  53.  
  54. function SortCallbackDesc( $aParam1, $aParam2 ) 
  55. {
  56. return SortCallback( $aParam1, $aParam2 ) * -1;
  57. }
  58.  
  59.  
  60. uasort( $aData , 'SortCallbackDesc' );
  61.  
  62. echo '<pre>';
  63. print_r( $aData );
  64. ?>


// edited. Tak jak napisał w poście powyżej ganimedes, mój poprzedni kod zawierał drobiny błąd.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
ganimedes
post 23.11.2004, 23:36:32
Post #9





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 1.04.2004

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


Przepraszam to było zadanie dla wybitnie zdolnych smile.gif masz u mnie piwo jeśli jesteś z okolic Sokołowa lub Siedlec!!!

Ten post edytował ganimedes 23.11.2004, 23:37:37
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: 31.07.2025 - 10:30