Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Grupowanie elementow tablicy
miszz
post 25.08.2010, 09:33:56
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 20.02.2004
Skąd: Zielona góra

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


Dzień dobry,

mam sobie n-elementową tablicę:
  1. (
  2. [0] => Array
  3. (
  4. [surowiec_rodzaj] => 1000-1200
  5. [surowiec_cecha3] => DUZO
  6. [surowiec_cecha4] => X
  7. [surowiec_cecha5] => Y
  8. [surowiec_cecha6] => Z
  9. [produkt_id] => K22222
  10. [wynik] => 0.00042
  11. [jm] => szt
  12. )
  13.  
  14. [1] => Array
  15. (
  16. [surowiec_rodzaj] => 114-41
  17. [surowiec_cecha3] => DUZO
  18. [surowiec_cecha4] => X
  19. [surowiec_cecha5] => Y
  20. [surowiec_cecha6] => Z
  21. [produkt_id] => N111111
  22. [wynik] => 4.4
  23. [jm] => szt
  24. )
  25. [2] => Array
  26. (
  27. [surowiec_rodzaj] => 114-41
  28. [surowiec_cecha3] => MALO
  29. [surowiec_cecha4] => x
  30. [surowiec_cecha5] => Y
  31. [surowiec_cecha6] => Z
  32. [produkt_id] => ASD7888
  33. [wynik] => 4.4
  34. [jm] => szt
  35. )
  36. }


Zastanawiam się jak pogrupować elementy ze względu na podobieństwo cech (surowiec_cecha3 do surowiec_cecha6).
Czyli pętla sobie leci sprawdzając jednocześnie czy w tablicy nie istnieje rekord z podobnymi cechami jeśli tak wyświetli je w jednym wierszu jeśli nie łamie linie.
K22222 - 1000-120_DUZO_X_Y_Z N111111 - 114-41_DUZO_X_Y_Z \n
ASD7888 - 114-41_MALO_X_Y_Z

proszę o podpowiedź jak się powinienem zorganizować z tym..

Ten post edytował miszz 25.08.2010, 09:34:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post 26.08.2010, 12:07:01
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


hej wystarczy tutaj prosta modyfikacja tego co CI już dałem, a mianowicie do oddzielnej tablicy zbieramy id produktów, które już umieściliśmy w tablicy i jeżeli został już wykorzystany to go nie dodajemy:
  1. $sorted = array();
  2. $used_ids = array();
  3.  
  4. foreach($array as $key=>$value)
  5. {
  6. $unique_key = md5(strtolower($value['surowiec_cecha3'])."-".strtolower($value['surowiec_cecha4'])."-".strtolower($value['surowiec_cecha5'])."-".strtolower($value['surowiec_cecha6']));
  7. if(!in_array($value['produkt_id'], $used_ids))
  8. {
  9. if(array_key_exists($unique_key,$sorted))
  10. {
  11. $sorted[$unique_key][] = $value;
  12. }else
  13. {
  14. $sorted[$unique_key] = array();
  15. $sorted[$unique_key][] = $value;
  16. }
  17. $used_ids[] = $value['produkt_id'];
  18. }
  19. }
  20. //print sorted arrays in one line per group
  21. foreach($sorted as $value)
  22. {
  23. foreach($value as $val)
  24. {
  25. echo $val['produkt_id']." - ".$val['surowiec_rodzaj']." ".$val['surowiec_cecha3']."_".$val['surowiec_cecha4']."_".$val['surowiec_cecha5']."_".$val['surowiec_cecha6']."    ";
  26. }
  27. echo "<br/>";
  28. }
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 19:48