Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sergegacja i podmiana danych z tablicy
Forum PHP.pl > Forum > Przedszkole
5w155
Mam taką tablicę:
  1. (
  2. [0] => stdClass Object
  3. (
  4. [id] => 1
  5. [typ] => tw
  6. [zestaw] => po,ok:mi,or:te,do:bi,ok:sp
  7. )
  8.  
  9. [1] => stdClass Object
  10. (
  11. [id] => 2
  12. [typ] => tw
  13. [zestaw] => po,ok:mi,or:te,do:bi,sp:la,do:bi,ok:sp
  14. )
  15.  
  16. [2] => stdClass Object
  17. (
  18. [id] => 3
  19. [typ] => tw
  20. [zestaw] => po,or,do:bi
  21. )
  22.  
  23. [3] => stdClass Object
  24. (
  25. [id] => 4
  26. [typ] => tw
  27. [zestaw] => pr,po,ok:ma,or,ok:pa
  28. )
  29.  
  30. [4] => stdClass Object
  31. (
  32. [id] => 5
  33. [typ] => tw
  34. [zestaw] => po,pr:pr
  35. )
  36.  
  37. [5] => stdClass Object
  38. (
  39. [id] => 7
  40. [typ] => py
  41. [zestaw] => py,po,ok:pa,ok:sk,or,do:bi
  42. )
  43.  
  44. [6] => stdClass Object
  45. (
  46. [id] => 8
  47. [typ] => py
  48. [zestaw] => py,pr,po,or
  49. )
  50.  
  51. [7] => stdClass Object
  52. (
  53. [id] => 9
  54. [typ] => py
  55. [zestaw] => py,po,or
  56. )
  57.  
  58. )

Potrzebuję ją podzielić ze wzlędu na [typ] (są tu akurat tylko 2), potem rodzielić wszystko w [zestaw]'ie i popodmieniać te wartości.
Ma to wyglądać tak:

explode 'zestaw' wg "," (przecinka), a potem jeszcze rozbicie tego na mniejsze tabele wg ":" (dwukropka).
Daje mi to coś takiego:
  1. (
  2. [0] => po
  3. )
  4.  
  5. (
  6. [0] => ok
  7. [1] => mi
  8. )
  9.  
  10. (
  11. [0] => or
  12. [1] => te
  13. )
  14.  
  15. (
  16. [0] => do
  17. [1] => bi
  18. )
  19.  
  20. (
  21. [0] => ok
  22. [1] => sp
  23. )
  24.  
  25. (
  26. [0] => po
  27. )
  28.  
  29. ..................itd

I teraz pytanie: jak za pomcą np str_replace (o ile tak sie da) podmienić wartości tych elementów. Np "po" zamienić na "podmiot" itd? [struktura tabeli moze pozostac ta sama]
Fifi209
Masz przykład:
  1. <?php
  2.  
  3. $arr = array(
  4. array('typ' => 'x', 1),
  5. array('typ' => 'y', 1),
  6. array('typ' => 'y', 2),
  7. array('typ' => 'x', 2),
  8. array('typ' => 'x', 3)
  9. );
  10.  
  11. $n_arr = array();
  12. foreach ($arr as $item) {
  13. $n_arr[$item['typ']][] = $item;
  14. }
  15.  
  16. echo '<pre>';
  17. print_r($n_arr);
  18.  
  19. ?>


Resztę wymyślisz ;]
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.