fork download
  1. <?php
  2. $cols = Array
  3. (
  4. 0 => 'Name',
  5. 1 => 'MCR',
  6. 2 => 'MCD',
  7. 3 => 'COM',
  8. 4 => 'INV',
  9. 5 => 'IDM',
  10. 6 => 'PPO',
  11. 7 => 'HKD',
  12. 8 => 'ALL',
  13. 9 => 'POS',
  14. 10 => 'MCD-SP',
  15. 11 => 'MCD-BH',
  16. 12 => 'MCD-CL',
  17. 13 => 'MCD-CO',
  18. 14 => 'MCR-SP',
  19. 15 => 'MCR-PO'
  20. );
  21.  
  22. $rows = Array(
  23. 0 => Array(
  24. 0 => 'Primero',
  25. 1 => 19683.43,
  26. 2 => NULL,
  27. 3 => 3757.38,
  28. 4 => NULL,
  29. 5 => NULL,
  30. 6 => NULL,
  31. 7 => NULL,
  32. 8 => NULL,
  33. 9 => NULL,
  34. 10 => NULL,
  35. 11 => NULL,
  36. 12 => NULL,
  37. 13 => NULL,
  38. 14 => NULL,
  39. 15 => NULL
  40. ),
  41. 1 => Array
  42. (
  43. 0 => 'Segundo',
  44. 1 => 15340.5767,
  45. 2 => NULL,
  46. 3 => NULL,
  47. 4 => NULL,
  48. 5 => NULL,
  49. 6 => NULL,
  50. 7 => NULL,
  51. 8 => NULL,
  52. 9 => NULL,
  53. 10 => NULL,
  54. 11 => NULL,
  55. 12 => NULL,
  56. 13 => NULL,
  57. 14 => NULL,
  58. 15 => NULL
  59. ),
  60. 2 => Array
  61. (
  62. 0 => 'Tercero',
  63. 1 => NULL,
  64. 2 => NULL,
  65. 3 => NULL,
  66. 4 => NULL,
  67. 5 => NULL,
  68. 6 => NULL,
  69. 7 => NULL,
  70. 8 => NULL,
  71. 9 => NULL,
  72. 10 => 4969.65,
  73. 11 => NULL,
  74. 12 => NULL,
  75. 13 => NULL,
  76. 14 => 23695.39,
  77. 15 => NULL
  78. ),
  79. 3 => Array
  80. (
  81. 0 => 'Cuarto',
  82. 1 => NULL,
  83. 2 => NULL,
  84. 3 => NULL,
  85. 4 => NULL,
  86. 5 => NULL,
  87. 6 => NULL,
  88. 7 => NULL,
  89. 8 => NULL,
  90. 9 => NULL,
  91. 10 => NULL,
  92. 11 => 45974.86,
  93. 12 => NULL,
  94. 13 => NULL,
  95. 14 => NULL,
  96. 15 => NULL
  97. ),
  98. 4 => Array
  99. (
  100. 0 => 'Quinto',
  101. 1 => NULL,
  102. 2 => NULL,
  103. 3 => NULL,
  104. 4 => NULL,
  105. 5 => NULL,
  106. 6 => NULL,
  107. 7 => NULL,
  108. 8 => NULL,
  109. 9 => NULL,
  110. 10 => 1405.8,
  111. 11 => 39244,
  112. 12 => NULL,
  113. 13 => NULL,
  114. 14 => NULL,
  115. 15 => NULL
  116. )
  117. );
  118.  
  119. $qty_col = count($cols) - 1;
  120. $qty_rows = count($rows);
  121. //echo $qty_rows;
  122.  
  123. $ifScript = '';
  124. for ($a = 1; $a <= $qty_col; $a++) {
  125. $unsetScript = 'unset(';
  126. $ifScript .='if(';
  127. for ($b = 0; $b <= $qty_rows; $b++) {
  128. $ifScript .= 'empty($rows[' . $b . '][' . $a . '])';
  129. $unsetScript .='$rows[' . $b . '][' . $a . ']';
  130. if ($b == $qty_rows) {
  131. $ifScript .='){';
  132. //$ifScript .='){<br>';
  133. $unsetScript .=', $cols[' . $a . ']);';
  134. } else {
  135. $ifScript .= ' && ';
  136. $unsetScript .=', ';
  137. }
  138. }
  139. $ifScript .= $unsetScript . '}';
  140. //$ifScript .= $unsetScript . '<br>}<br>';
  141. }
  142.  
  143.  
  144. //echo $ifScript;
  145. eval($ifScript);
  146. $cols = array_values($cols);
  147. $rows = array_map('array_values', $rows);
  148.  
  149. foreach ($cols as $key => $value) {
  150. $cols[$key] = array(
  151. 'id' => NULL,
  152. 'label' => $value
  153. );
  154. $type = ($key == 0) ? 'string' : 'number';
  155. $cols[$key]['type'] = $type;
  156. }
  157.  
  158. foreach ($rows as $key1 => $value1) {
  159. foreach ($value1 as $key2 => $value2) {
  160. $val = (empty($value2)) ? '0.00' : $value2;
  161. $format = ($key2 == 0) ? strtoupper(trim($value2)) : '$' . number_format($value2, '2', '.', ',');
  162. $value1[$key2] = array(
  163. 'v' => $val,
  164. 'f' => $format
  165. );
  166. }
  167. $rows[$key1] = array(
  168. 'c' => $value1
  169. );
  170. }
  171. $newArray = array(
  172. 'cols' => $cols,
  173. 'rows' => $rows
  174. );
  175. echo '<pre>';
  176. print_r($newArray);
  177. echo '</pre>';
Success #stdin #stdout 0.03s 20568KB
stdin
Standard input is empty
stdout
<pre>Array
(
    [cols] => Array
        (
            [0] => Array
                (
                    [id] => 
                    [label] => Name
                    [type] => string
                )

            [1] => Array
                (
                    [id] => 
                    [label] => MCR
                    [type] => number
                )

            [2] => Array
                (
                    [id] => 
                    [label] => COM
                    [type] => number
                )

            [3] => Array
                (
                    [id] => 
                    [label] => MCD-SP
                    [type] => number
                )

            [4] => Array
                (
                    [id] => 
                    [label] => MCD-BH
                    [type] => number
                )

            [5] => Array
                (
                    [id] => 
                    [label] => MCR-SP
                    [type] => number
                )

        )

    [rows] => Array
        (
            [0] => Array
                (
                    [c] => Array
                        (
                            [0] => Array
                                (
                                    [v] => Primero
                                    [f] => PRIMERO
                                )

                            [1] => Array
                                (
                                    [v] => 19683.43
                                    [f] => $19,683.43
                                )

                            [2] => Array
                                (
                                    [v] => 3757.38
                                    [f] => $3,757.38
                                )

                            [3] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [4] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [5] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                        )

                )

            [1] => Array
                (
                    [c] => Array
                        (
                            [0] => Array
                                (
                                    [v] => Segundo
                                    [f] => SEGUNDO
                                )

                            [1] => Array
                                (
                                    [v] => 15340.5767
                                    [f] => $15,340.58
                                )

                            [2] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [3] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [4] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [5] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                        )

                )

            [2] => Array
                (
                    [c] => Array
                        (
                            [0] => Array
                                (
                                    [v] => Tercero
                                    [f] => TERCERO
                                )

                            [1] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [2] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [3] => Array
                                (
                                    [v] => 4969.65
                                    [f] => $4,969.65
                                )

                            [4] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [5] => Array
                                (
                                    [v] => 23695.39
                                    [f] => $23,695.39
                                )

                        )

                )

            [3] => Array
                (
                    [c] => Array
                        (
                            [0] => Array
                                (
                                    [v] => Cuarto
                                    [f] => CUARTO
                                )

                            [1] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [2] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [3] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [4] => Array
                                (
                                    [v] => 45974.86
                                    [f] => $45,974.86
                                )

                            [5] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                        )

                )

            [4] => Array
                (
                    [c] => Array
                        (
                            [0] => Array
                                (
                                    [v] => Quinto
                                    [f] => QUINTO
                                )

                            [1] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [2] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                            [3] => Array
                                (
                                    [v] => 1405.8
                                    [f] => $1,405.80
                                )

                            [4] => Array
                                (
                                    [v] => 39244
                                    [f] => $39,244.00
                                )

                            [5] => Array
                                (
                                    [v] => 0.00
                                    [f] => $0.00
                                )

                        )

                )

        )

)
</pre>