Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja uasort()
marcinek37
post
Post #1





Grupa: Zarejestrowani
Postów: 239
Pomógł: 0
Dołączył: 2.06.2011

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


Mam kod z manuala:
  1. <?php
  2. // Comparison function
  3. function cmp($a, $b) {
  4. if ($a == $b) {
  5. return 0;
  6. }
  7. return ($a < $b) ? -1 : 1;
  8. }
  9.  
  10. // Array to be sorted
  11. $array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
  12. print_r($array);
  13.  
  14. // Sort and print the resulting array
  15. uasort($array, 'cmp');
  16. print_r($array);
  17. ?>


Nie rozumiem, na czym polega funkcja "cmp".
Umieszcza się do niej dwie informacje, tj. $a i $b.

Jeśli $a to nazwy typu "a", "b" itd., a $b to 4, 1 itp. to skąd w kodzie jest coś takiego "$a == $b" - przecież literka nigdy nie będzie równa liczbie.
Czy ktoś może mi pokazać jakiś prosty przykład?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kreatiff
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


usort świetnie nadaje się do sortowania tablic wielowymiarowych po jakiejś wartości z podtalicy.
Ja np. używałem usort ostatnio przy sortowaniu takiej tablicy:
  1. $baza = array(
  2. 'x' => ...
  3. 'y' => ...
  4. 'reputation' = array(
  5. 1 => array(
  6. 'datetime' => 1234567,
  7. ...
  8. )
  9. 2 => array(
  10. 'datetime' => 10,
  11. ...
  12. )
  13. 3 => array(
  14. 'datetime' => 10000,
  15. ...
  16. )
  17. )
  18. 'z' => ...
  19. )
  20. usort($baza['reputation'], function($a, $b) { return $a['dateline'] - $b['dateline']; });
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 19:11