Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Nietypowe sortowanie tablicy
parzol
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 7.05.2005

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


Witam.

Czy jest możliwe jakieś proste posortowanie tej tablicy:

  1. <?php
  2. [06] => Array
  3. (
  4. [0] => Czerwiec
  5. [1] => Array
  6. (
  7. [0] => 21.
  8. [1] => 66&#8364;
  9. )
  10.  
  11. [2] => Array
  12. (
  13. [0] => 28.
  14. [1] => 66&#8364;
  15. )
  16.  
  17. [3] => Array
  18. (
  19. [0] => 07.
  20. [1] => 232&#8364;
  21. )
  22. )
  23. ?>


ale tak aby otrzymać:

  1. <?php
  2. [06] => Array
  3. (
  4. [0] => Czerwiec
  5. [1] => Array
  6. (
  7. [0] => 07.
  8. [1] => 232&#8364;
  9. )
  10.  
  11. [2] => Array
  12. (
  13. [0] => 21.
  14. [1] => 66&#8364;
  15. )
  16.  
  17. [3] => Array
  18. (
  19. [0] => 28.
  20. [1] => 66&#8364;
  21. )
  22. )
  23. ?>


Czyli klucz [0] z nazwą miesiąca jest zawsze [0] a sortujemy tylko dla tych wewnętrznych tablic po kluczu [0] czyli cyframi z kropką (7. , 21. , 28.).
Da się to wogóle zrobić?


Pozdrawiam i z góry dzięki za wszelką pomoc!
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ja bym sugerował zmienić nieco strukturę tablicy tworząc indeksy nie w postaci 0, 1, 2, a w takiej (w Twoim przypadku) 7, 21, 28 (dodatkowo bez 0 na początku, co również tyczy się "głównego" indeksu). Powinno być Ci łatwiej osiągnąć cel.
Go to the top of the page
+Quote Post
batman
post
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Długo już tej funkcji nie używałem, ale z manual wyczytasz jak się jej używa: usort
Go to the top of the page
+Quote Post
parzol
post
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 7.05.2005

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


usort to chyba jednak nie to. Od biedy dobre rozwiązanie phpiona. Dzięki (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Ten post edytował parzol 7.04.2008, 18:03:23
Go to the top of the page
+Quote Post
batman
post
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




usort to jest to. Wzięte na żywca z manuala (z drobną zmianą):
  1. <?php
  2. $arr = array(
  3. 0 => 'Czerwiec',
  4. => array(
  5. 0 => 21,
  6. 1 => '66€'),
  7. => array(
  8. 0 => 28,
  9. 1 => '66€'),
  10. => array(
  11. 0 => 07,
  12. 1 => '232€')
  13. );
  14.  
  15. echo '<pre>';
  16. print_r($arr);
  17. echo '</pre>';
  18.  
  19. usort($arr, 'callback');
  20.  
  21. echo '<pre>';
  22. print_r($arr);
  23. echo '</pre>';
  24.  
  25.  
  26. function callback($a, $b) {
  27.  
  28. if ((int)$a[0] == (int)$b[0]) {
  29. return 0;
  30. }
  31. return ((int)$a[0] < (int)$b[0]) ? -: 1;
  32. }
  33. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 17:45