Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Alpfabetyczne sortowanie
Forum PHP.pl > Forum > PHP
pioncz
Witam,
Próbuję zrobić sortowanie takie jak w windowsie po nazwie tzn. takie, że: sprawdzam na każdej pozycji oba stringi, jeżeli na pozycji i, jeden ze stringów jest pusty, a drugi nie, to ten pierwszy jest mniejszy, elseif, znak na pozycji i jest mniejszy w stringu pierwszym, to ten string jest mniejszy, w przeciwnym przypadku sprawdzaj dalej (elementy tablicy są unikatowe).
O to kod, który napisałem:
Funkcja strcmpalph próbuje porównywać napisy jak napisałem wyżej, alphsort to zwyczajne sortowanie bąbelkowe wykorzystujące funkcję strcmpalph do porównywania.
  1. function strcmpalph($a, $b)
  2. {
  3. $size = max(strlen($a),strlen($b));
  4. for($i = 0; $i<$size && $bool; $i++)
  5. {
  6. if(!isset($a[$i]) || !isset($b[$i]))
  7. {
  8. print "spjecie";
  9. return (isset($a[$i]))?-1:1;
  10. }
  11. if($a[$i] < $b[$i]) {
  12. return -1;
  13. }
  14. if($b[$i] < $a[$i]) {
  15. return 1;
  16. }
  17. }
  18. }
  19.  
  20. function alphsort($t)
  21. {
  22. $size = sizeof($t)-1;
  23. for ($i=0; $i<$size;$i++) {
  24. for ($j=0; $j<sizeof($t)-1; $j++)
  25. {
  26. if (strcmpalph($t[$i],$t[$i+1]) > 0)
  27. {
  28. $pom = $t[$i];
  29. $t[$i] = $t[$i+1];
  30. $t[$i+1] = $pom;
  31. }
  32.  
  33. }
  34. }
  35. }


Może ktoś z tym pomóc?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.