Mam problem z konwersją tablicy na inną tablicę.
Dane wejściowe:
(
(
[id_field] => 26
[id_table] => 29
[id_column] => 10
[value] => 1%
[id_row] => 2
[colname] => Zapotrzebowanie dzienne
)
(
[id_field] => 25
[id_table] => 29
[id_column] => 8
[value] => tłuszcz
[id_row] => 2
[colname] => Składnik
)
(
[id_field] => 28
[id_table] => 29
[id_column] => 10
[value] => value
[id_row] => 3
[colname] => Zapotrzebowanie dzienne
)
(
[id_field] => 27
[id_table] => 29
[id_column] => 8
[value] => example
[id_row] => 3
[colname] => Składnik
)
(
[id_field] => 31
[id_table] => 29
[id_column] => 11
[value] => extra value
[id_row] => 4
[colname] => Kolejna kolumna
)
(
[id_field] => 30
[id_table] => 29
[id_column] => 10
[value] => 10%
[id_row] => 4
[colname] => Zapotrzebowanie dzienne
)
(
[id_field] => 29
[id_table] => 29
[id_column] => 8
[value] => węglowodany
[id_row] => 4
[colname] => Składnik
)
)
Wyjście powinno wyglądać tak:
(
(
[1] => 1%
[2] => tłuszcz
)
(
[1] => value
[2] => example
)
(
[0] => extra value
[1] => 10%
[2] => węglowodany
)
)
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:
for($i=0; $i<count($result); $i++) {
if($result[$i]['id_row']==$result[$i-1]['id_row'] OR $i==0) {
} else {
$i2++;
}
}
Muszę go rozszerzyć o uzupełnianie pustych pól - pomożecie (IMG:
style_emoticons/default/smile.gif) ?
Z góry dzięki