3v4l.org

run code in 300+ PHP versions simultaneously
<?php $cols = Array ( 0 => 'Name', 1 => 'MCR', 2 => 'MCD', 3 => 'COM', 4 => 'INV', 5 => 'IDM', 6 => 'PPO', 7 => 'HKD', 8 => 'ALL', 9 => 'POS', 10 => 'MCD-SP', 11 => 'MCD-BH', 12 => 'MCD-CL', 13 => 'MCD-CO', 14 => 'MCR-SP', 15 => 'MCR-PO' ); $rows = Array( 0 => Array( 0 => 'Primero', 1 => 19683.43, 2 => NULL, 3 => 3757.38, 4 => NULL, 5 => NULL, 6 => NULL, 7 => NULL, 8 => NULL, 9 => NULL, 10 => NULL, 11 => NULL, 12 => NULL, 13 => NULL, 14 => NULL, 15 => NULL ), 1 => Array ( 0 => 'Segundo', 1 => 15340.5767, 2 => NULL, 3 => NULL, 4 => NULL, 5 => NULL, 6 => NULL, 7 => NULL, 8 => NULL, 9 => NULL, 10 => NULL, 11 => NULL, 12 => NULL, 13 => NULL, 14 => NULL, 15 => NULL ), 2 => Array ( 0 => 'Tercero', 1 => NULL, 2 => NULL, 3 => NULL, 4 => NULL, 5 => NULL, 6 => NULL, 7 => NULL, 8 => NULL, 9 => NULL, 10 => 4969.65, 11 => NULL, 12 => NULL, 13 => NULL, 14 => 23695.39, 15 => NULL ), 3 => Array ( 0 => 'Cuarto', 1 => NULL, 2 => NULL, 3 => NULL, 4 => NULL, 5 => NULL, 6 => NULL, 7 => NULL, 8 => NULL, 9 => NULL, 10 => NULL, 11 => 45974.86, 12 => NULL, 13 => NULL, 14 => NULL, 15 => NULL ), 4 => Array ( 0 => 'Quinto', 1 => NULL, 2 => NULL, 3 => NULL, 4 => NULL, 5 => NULL, 6 => NULL, 7 => NULL, 8 => NULL, 9 => NULL, 10 => 1405.8, 11 => 39244, 12 => NULL, 13 => NULL, 14 => NULL, 15 => NULL ) ); $qty_col = count($cols) - 1; $qty_rows = count($rows); //echo $qty_rows; $ifScript = ''; for ($a = 1; $a <= $qty_col; $a++) { $unsetScript = 'unset('; $ifScript .='if('; for ($b = 0; $b <= $qty_rows; $b++) { $ifScript .= 'empty($rows[' . $b . '][' . $a . '])'; $unsetScript .='$rows[' . $b . '][' . $a . ']'; if ($b == $qty_rows) { $ifScript .='){'; //$ifScript .='){<br>'; $unsetScript .=', $cols[' . $a . ']);'; } else { $ifScript .= ' && '; $unsetScript .=', '; } } $ifScript .= $unsetScript . '}'; //$ifScript .= $unsetScript . '<br>}<br>'; } //echo $ifScript; eval($ifScript); $cols = array_values($cols); $rows = array_map('array_values', $rows); foreach ($cols as $key => $value) { $cols[$key] = array( 'id' => NULL, 'label' => $value ); $type = ($key == 0) ? 'string' : 'number'; $cols[$key]['type'] = $type; } foreach ($rows as $key1 => $value1) { foreach ($value1 as $key2 => $value2) { $val = (empty($value2)) ? '0.00' : $value2; $format = ($key2 == 0) ? strtoupper(trim($value2)) : '$' . number_format($value2, '2', '.', ','); $value1[$key2] = array( 'v' => $val, 'f' => $format ); } $rows[$key1] = array( 'c' => $value1 ); } $newArray = array( 'cols' => $cols, 'rows' => $rows ); echo '<pre>'; print_r($newArray); echo '</pre>';

preferences:
32.52 ms | 402 KiB | 5 Q