Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] jak ustawic tablice od najwiekszej wartosci
AndyPSV
post
Post #1





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


Mam takie cos, chce ustawic ta tablice po najwiekszej wartosci "e_months0" (teraz jest dobrze ustawiona, ale jak zrobic skrypt, ktory by ustawial ja?):

  1. 0 =>
  2. 'id' => '1',
  3. 'nick' => 'AndyPSV',
  4. 'status' => 'admin',
  5. 'first_name' => 'Andrzej Jeziorski',
  6. 'c_months3' => 0,
  7. 'c_months1' => 0,
  8. 'c_months0' => 5,
  9. 'c_months_now' => 3,
  10. 'e_months3' => '',
  11. 'e_months1' => '',
  12. 'e_months0' => '100',
  13. 'this_month' => 500,
  14. ),
  15. 1 =>
  16. 'id' => '2',
  17. 'nick' => 'Toruniak',
  18. 'status' => 'caller',
  19. 'first_name' => '',
  20. 'c_months3' => 0,
  21. 'c_months1' => 0,
  22. 'c_months0' => 0,
  23. 'c_months_now' => 0,
  24. 'e_months3' => '',
  25. 'e_months1' => '',
  26. 'e_months0' => '',
  27. 'this_month' => 0,
  28. ),
  29. )
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


usort()
Go to the top of the page
+Quote Post
AndyPSV
post
Post #3





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


zastosowalem ta funkcje, ale nie dziala - widac, ze na przykladzie tak samo nie jest to co chce uzyskac:

CHCE posortowac po NAJWIEKSZEJ wartosci pole, ma ktos jakas funkcje?

  1. Przykład #2 Przykład użycia usort() do sortowania wielowymiarowych tablic
  2. <?php
  3. function cmp($a, $b)
  4. {
  5. return strcmp($a["owoc"], $b["owoc"]);
  6. }
  7.  
  8. $owoce[0]["owoc"] = "cytryny";
  9. $owoce[1]["owoc"] = "jabłka";
  10. $owoce[2]["owoc"] = "winogrona";
  11.  
  12. usort($owoce, "cmp");
  13.  
  14. while (list($key, $value) = each($owoce)) {
  15. echo "\$owoce[$key]: " . $value["owoc"] . "\n";
  16. }
Go to the top of the page
+Quote Post
#luq
post
Post #4





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Cytat(AndyPSV @ 11.09.2010, 03:20:26 ) *
zastosowalem ta funkcje, ale nie dziala

To dziwne bo u mnie działa...
Go to the top of the page
+Quote Post
AndyPSV
post
Post #5





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


Wynik, nie dziala - moze cos robie zle?

  1. $array[0]: 100 $array[1]: 400 $array[2]: 50


a ma byc tak:
  1. $array[0]: 400 $array[1]: 100 $array[2]: 50



  1. <?php
  2. function cmp($a, $b)
  3. {
  4. return strcmp($a["e_months0"], $b["e_months0"]);
  5. }
  6.  
  7. $array = array (
  8. 0 =>
  9. 'id' => '1',
  10. 'nick' => 'AndyPSV',
  11. 'status' => 'admin',
  12. 'first_name' => 'Andrzej Jeziorski',
  13. 'c_months3' => 0,
  14. 'c_months1' => 0,
  15. 'c_months0' => 5,
  16. 'c_months_now' => 3,
  17. 'e_months3' => '',
  18. 'e_months1' => '',
  19. 'e_months0' => '100',
  20. 'this_month' => 500,
  21. ),
  22. 1 =>
  23. 'id' => '2',
  24. 'nick' => 'Toruniak',
  25. 'status' => 'caller',
  26. 'first_name' => '',
  27. 'c_months3' => 0,
  28. 'c_months1' => 0,
  29. 'c_months0' => 0,
  30. 'c_months_now' => 0,
  31. 'e_months3' => '',
  32. 'e_months1' => '',
  33. 'e_months0' => '50',
  34. 'this_month' => 0,
  35. ),
  36. 2 =>
  37. 'id' => '2',
  38. 'nick' => 'Toruniak',
  39. 'status' => 'caller',
  40. 'first_name' => '',
  41. 'c_months3' => 0,
  42. 'c_months1' => 0,
  43. 'c_months0' => 0,
  44. 'c_months_now' => 0,
  45. 'e_months3' => '',
  46. 'e_months1' => '',
  47. 'e_months0' => '400',
  48. 'this_month' => 0,
  49. ),
  50. );
  51.  
  52. usort($array, "cmp");
  53.  
  54. while (list($key, $value) = each($array)) {
  55. echo "\$array[$key]: " . $value["e_months0"] . "\n";
  56. }
  57.  
  58. ?>


Ten post edytował AndyPSV 11.09.2010, 16:35:37
Go to the top of the page
+Quote Post
#luq
post
Post #6





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Porównujesz inty funkcją strcmp... Już sam początek nazwy tej funkcji mówi, że służy do stringów.
Musisz sprawdzać warunek, spójrz na 1. example.
Go to the top of the page
+Quote Post
AndyPSV
post
Post #7





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


prosilbym o kod, gdybym wiedzial jak to zrobic nie prosilbym o pomoc
jak to zrobic?

dziala! zrobione, dzieki

  1. <?php
  2.  
  3. $array = array (
  4. 0 =>
  5. 'id' => '1',
  6. 'nick' => 'AndyPSV',
  7. 'status' => 'admin',
  8. 'first_name' => 'Andrzej Jeziorski',
  9. 'c_months3' => 0,
  10. 'c_months1' => 0,
  11. 'c_months0' => 5,
  12. 'c_months_now' => 3,
  13. 'e_months3' => '',
  14. 'e_months1' => '',
  15. 'e_months0' => '100',
  16. 'this_month' => 500,
  17. ),
  18. 1 =>
  19. 'id' => '2',
  20. 'nick' => 'Toruniak',
  21. 'status' => 'caller',
  22. 'first_name' => '',
  23. 'c_months3' => 0,
  24. 'c_months1' => 0,
  25. 'c_months0' => 0,
  26. 'c_months_now' => 0,
  27. 'e_months3' => '',
  28. 'e_months1' => '',
  29. 'e_months0' => '50',
  30. 'this_month' => 0,
  31. ),
  32. 2 =>
  33. 'id' => '2',
  34. 'nick' => 'Toruniak',
  35. 'status' => 'caller',
  36. 'first_name' => '',
  37. 'c_months3' => 0,
  38. 'c_months1' => 0,
  39. 'c_months0' => 0,
  40. 'c_months_now' => 0,
  41. 'e_months3' => '',
  42. 'e_months1' => '',
  43. 'e_months0' => '400',
  44. 'this_month' => 0,
  45. ),
  46. );
  47.  
  48. usort($array, create_function('$a,$b','return $b["e_months0"] - $a["e_months0"];'));
  49.  
  50. echo '<pre>'.var_export($array);
  51.  
  52. ?>



Ten post edytował AndyPSV 12.09.2010, 13:41:15
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: 26.09.2025 - 08:42