Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie danych z sesji
pyrek
post 12.05.2006, 09:02:10
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 23.09.2003

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


Witam mam problem z wyciąganiem i układaniem zmiennych z sesii.


musze posortować to nie dośc że po magazynacz i to mi ładnie działa to dodatkowo jeszcze zrobić tak aby ostatnio dodany do koszyka produkt była wyświetlany na dole standard. Kombinuje na różne sposoby ale cały czas sortuje mi tylko po magazynie a już same produkty wyświetla losowo za każdym razem czyli jak dam odświerz koszyk to kolejność produktów ciągle się zmienia.

tak wyglada sesja:

  1. <?php
  2. [produkty] =>Array
  3. ( [0] => Array ( [produkt] => 259824 [magazyn] => 1 [ilosc] => 7 )
  4. [1] => Array ( [produkt] => 280735 [magazyn] => 1 [ilosc] => 2 )
  5. [2] => Array ( [produkt] => 280753 [magazyn] => 1 [ilosc] => 1 )
  6. [3] => Array ( [produkt] => 280745 [magazyn] => 16 [ilosc] => 0 ) ) )
  7. ?>



a tak to sortuje teraz
  1. <?php
  2. class ArrayMultiSort
  3. {
  4. var $fields;
  5.  
  6. function _callback($a, $b, $i = 0)
  7. {
  8. if ($a[$this->fields[$i]] == $b[$this->fields[$i]]) {
  9. if (isset($this->fields[$i + 1])) {
  10. return $this->_callback($a, $b, $i + 1);
  11. }
  12. return 0;
  13. }
  14. return ($a[$this->fields[$i]] > $b[$this->fields[$i]])? 1 : -1;
  15. }
  16.  
  17. function sort(&$arr)
  18. {
  19. usort($arr, array(&$this, '_callback'));
  20. }
  21. }
  22.  
  23.  
  24.  
  25. $sort = new ArrayMultiSort;
  26. $sort->fields = array( 'magazyn', 'produkt');
  27. $sort->sort($_SESSION[produkty]);
  28. ?>
Go to the top of the page
+Quote Post
siemakuba
post 12.05.2006, 12:45:54
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Cytat
tak aby ostatnio dodany do koszyka produkt była wyświetlany na dole

a skad wiadomo który produkt był dodany ostatnio do koszyka? to nie wynika z zadnej z wartosci tej tablicy ktora pokazales. Jakbys dodal np. klucz timeIndex z wartoscia aktualnego UNIX Timestamp do kazdego dodawanego produktu, wtedy bylo by wiadomo. I wtedy tez do takiego posortowania wystarczy ci zwykła array_multisort" title="Zobacz w manualu php" target="_manual (Przykład numer 3).

pozdr.
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: 12.06.2025 - 19:21