The array begins as follows:
Array (
[SMART Board] => Array ( [0] => sb1 [1] => sb2 [2] => sb3 )
[Projector] => Array ( [0] => pr1 [1] => pr2 [2] => pr3 )
[Speakers] => Array ( [0] => sp1 [1] => sp2 [2] => sp3 )
[Splitter] => Array ( [0] => spl1 [1] => spl2 [2] => spl3 )
[Wireless Slate] => Array ( [0] => ws1 [1] => ws2 [2] => ws3 )
)
Keys are used as table column headers. Their individual arrays must contain column information.
I split it even further with array_sliceand array_merge_recursiveto look pretty, since 2 arrays - 1 contains column names, and the other looks like this:
Array (
[0] => sb1
[1] => sb2
[2] => sb3
[3] => pr1
[4] => pr2
[5] => pr3
[6] => sp1
[7] => sp2
[8] => sp3
[9] => spl1
[10] => spl2
[11] => spl3
[12] => ws1
[13] => ws2
[14] => ws3
)
However, trying to write a table, I get the keys 0, 1, 2 as the column data, then a line break then 3, 4, 5, then a line break ... etc.
I need it to be 0, 3, 6, 9, 12 lines break 1, 4, 7, 10, 13 lines, etc.
How can I either resize the array to allow this, or rewrite how the data enters the table so that the correct information is lined up in the corresponding column?
foreach(unserialize($dl->data) as $data){
$uniques = array_slice($data,0,3);
$rows = array_slice($data,3);
$rows2 = array_merge_recursive($rows2, $rows);
foreach($uniques as $unique){
echo $unique."<br/>";
}
echo "<br>";
}
$numberofrooms = count($rows2[key($rows2)]);
$numberofproducts = count($rows2);
print_r($rows2);
unset($rows);
foreach($rows2 as $header=>$rowset){
$headers[] = $header;
foreach($rowset as $row){
$rows[] = $row;
}
}
echo "<p>";
print_r($rows);
echo '<table class="data-table">
<caption>DL</caption>
<thead><tr>';
foreach($headers as $header){
echo "<th>".$header."</th>";
}
echo '</tr></thead>';
echo '<tbody>';
$i = 0;
foreach($rows as $row){
if($i == 3 || $i == 0){
echo "<tr>";
$i = 1;
}
echo '<td>'.$row.'</td>';
if($i == 2){
echo "</tr>";
}
$i++;
}
echo '</tbody></table>';