Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Konwersja tablicy na inną tablicę, problem z algorytmem
pkr
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


Mam problem z konwersją tablicy na inną tablicę.

Dane wejściowe:

  1. (
  2. [0] => Array
  3. (
  4. [id_field] => 26
  5. [id_table] => 29
  6. [id_column] => 10
  7. [value] => 1%
  8. [id_row] => 2
  9. [colname] => Zapotrzebowanie dzienne
  10. )
  11.  
  12. [1] => Array
  13. (
  14. [id_field] => 25
  15. [id_table] => 29
  16. [id_column] => 8
  17. [value] => tłuszcz
  18. [id_row] => 2
  19. [colname] => Składnik
  20. )
  21.  
  22. [2] => Array
  23. (
  24. [id_field] => 28
  25. [id_table] => 29
  26. [id_column] => 10
  27. [value] => value
  28. [id_row] => 3
  29. [colname] => Zapotrzebowanie dzienne
  30. )
  31.  
  32. [3] => Array
  33. (
  34. [id_field] => 27
  35. [id_table] => 29
  36. [id_column] => 8
  37. [value] => example
  38. [id_row] => 3
  39. [colname] => Składnik
  40. )
  41.  
  42. [4] => Array
  43. (
  44. [id_field] => 31
  45. [id_table] => 29
  46. [id_column] => 11
  47. [value] => extra value
  48. [id_row] => 4
  49. [colname] => Kolejna kolumna
  50. )
  51.  
  52. [5] => Array
  53. (
  54. [id_field] => 30
  55. [id_table] => 29
  56. [id_column] => 10
  57. [value] => 10%
  58. [id_row] => 4
  59. [colname] => Zapotrzebowanie dzienne
  60. )
  61.  
  62. [6] => Array
  63. (
  64. [id_field] => 29
  65. [id_table] => 29
  66. [id_column] => 8
  67. [value] => węglowodany
  68. [id_row] => 4
  69. [colname] => Składnik
  70. )
  71.  
  72. )


Wyjście powinno wyglądać tak:

  1. (
  2. [0] => Array
  3. (
  4. [0] => empty field
  5. [1] => 1%
  6. [2] => tłuszcz
  7. )
  8.  
  9. [1] => Array
  10. (
  11. [0] => empty field
  12. [1] => value
  13. [2] => example
  14. )
  15.  
  16. [2] => Array
  17. (
  18. [0] => extra value
  19. [1] => 10%
  20. [2] => węglowodany
  21. )
  22.  
  23. )


Czyli: W pierwszej tabeli mamy każde pole z osobna, ale jest tam id kolumny i wiersza. Muszę zamienić to na tablicę w postaci jak wyżej + jeśli jakieś pole nie istnieje to w wyjściowej tablicy ma mieć wartość "puste pole".

Napisałem kod konwertujący tą tablicę, ale bez wypełnienia pusych pól, nie mam pomysłu jak sobie z tym poradzić.

Oto mój kod:

  1. for($i=0; $i<count($result); $i++) {
  2.  
  3. if(!is_array($rows[$i2])) $rows[$i2]=array();
  4.  
  5. if($result[$i]['id_row']==$result[$i-1]['id_row'] OR $i==0) {
  6. array_push($rows[$i2], $result[$i]['value']);
  7. } else {
  8.  
  9. $i2++;
  10. $rows[$i2]=array();
  11.  
  12. array_push($rows[$i2], $result[$i]['value']);
  13. }
  14.  
  15. }


Muszę go rozszerzyć o uzupełnianie pustych pól - pomożecie (IMG:style_emoticons/default/smile.gif) ?

Z góry dzięki
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:59