1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | function transposeCsvData( $data ) { $ct =0; foreach ( $data as $key => $val ) { //echo count($val); if ( $ct < count ( $val )) $ct = count ( $val ); } //echo $ct; $blank = array_fill (0, $ct , array_fill (0, count ( $data ),null)); //print_r($blank); $retData = array (); foreach ( $data as $row => $columns ) { foreach ( $columns as $row2 => $column2 ) { $retData [ $row2 ][ $row ] = $column2 ; } } $final = array (); foreach ( $retData as $k => $aval ) { $final []=array_replace( $blank [ $k ], $aval ); } return $final ; } |
Test Code
1 2 3 4 5 6 | $a []= array ( "name" , "john" , "sam" , "patrick" ); $a []= array ( "color" , "orange" , "green" ); $a []= array ( "bikes" , "suzuki" , "audi" , "mercedes" , "bmw" , "volks" , "rover" ); $a []= array ( "techgiants" , "samsung" , "amazon" ); print_r(transposeCsvData( $a )); |
Output
Array ( [0] => Array ( [0] => name [1] => color [2] => bikes [3] => techgiants ) [1] => Array ( [0] => john [1] => orange [2] => suzuki [3] => samsung ) [2] => Array ( [0] => sam [1] => green [2] => audi [3] => amazon ) [3] => Array ( [0] => patrick [1] => [2] => mercedes [3] => ) [4] => Array ( [0] => [1] => [2] => bmw [3] => ) [5] => Array ( [0] => [1] => [2] => volks [3] => ) [6] => Array ( [0] => [1] => [2] => rover [3] => ) ) |
Leave a Reply