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] =>
)
)
Leave a Reply