how to format sql server rows using php that look like this:
id company value monthyear
1 companyone 30 january2012
2 companytwo 20 february2012
3 companyone 10 february2012
into this:
monthyear: ['january2012', 'february2012']
and this:
company: 'companyone', value: [30, 10]
company: 'companytwo', value: [0, 20]
each instance of a month from the db is combined into one instance.
company one, which has two rows, is combined into one instance where each value is lined up in order of the month. company two, which only has one instance, has it’s value defined as 0 where it has no instance in a month.
the farthest i’ve gotten is are two two dimensional array with array_merge_recursive and some conditional statements but then my head goes into knots.
Some Reference for
GROUP_CONCAT.PHP solution:
Select the to be grouped attribute sorted (company). Loop over them and open a new group every time you encounter a different value for company. As long as the current row has the same row as the previous, add
valueandmonthyearto the current company.You could do this even without sorting:
Some output example
Elegant way with OOP: