Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Oznaczenie rekordów zduplikowanych w tablicy
Forum PHP.pl > Forum > PHP
Bondar91
Witam,

mam taki problem, mam sobię tablicę która wygląda tak:
  1. array(5) {
  2. [0]=>
  3. array(2) {
  4. ["order_id"]=>
  5. string(6) "123227"
  6. ["lp"]=>
  7. string(1) "0"
  8. }
  9. [1]=>
  10. array(2) {
  11. ["order_id"]=>
  12. string(6) "123227"
  13. ["lp"]=>
  14. string(1) "0"
  15. }
  16. [2]=>
  17. array(2) {
  18. ["order_id"]=>
  19. string(6) "123227"
  20. ["lp"]=>
  21. string(1) "0"
  22. }
  23. [3]=>
  24. array(2) {
  25. ["order_id"]=>
  26. string(6) "123226"
  27. ["lp"]=>
  28. string(1) "0"
  29. }
  30. }


W jaki sposób mógłbym zmienić wartość dla pola lp w taki sposób, ze jak jest to samo order_id , dla pierwszego rekordu który ma te samo order_id, lp ustawić na 1, a dla pozostałych 0( czyli w podanym wyżej przykładzie występuje 3 razy rekord o order_id 123227, jak dla pierwszego rekrodu lp ustawić na 1 a dla dwóch pozsotałych zostawić 0) , domyślnie jeśli występuje tylko jednen rekord o danym numere order_id lp ma być ustawione na 0. Ktoś coś podpowie smile.gif?
freemp3
Tworzysz sobie dodatkową tablicę w której kluczem będzie wartość z order_id, a wartością indeks w tablicy z elementami.
Następnie lecąc w pętli po tablicy z elementami ustawiasz im wartość "lp" na 0 oraz dodajesz do tej dodatkowej elementy na zasadzie "order_id -> indeks".
W przypadku, gdy istnieje już klucz o danym order_id to nie dodajesz, tylko pobierasz wartość z dodatkowej tablicy dla danego klucza order_id. Mając indeks, możesz ustawić wartość "lp", dla pierwszego elementu na 1.
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.