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
$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] => ) )