i have the following array. how to display array keys as headers and values of keys which are also arrays as table rows.
Array
(
[coa_id] => Array
(
[0] => 3012
[1] => 3013
[2] => 3014
[3] => 3015
[4] => 3016
[5] => 3017
[6] => 3018
[7] => 3019
[8] => 3020
[9] => 3021
[10] => 3022
[11] => 3023
[12] => 3024
)
[account_title] => Array
(
[0] => Pay of Officers and Official
[1] => Fixed Pay Contract Employees
[2] => Leave Salary
[3] => GP Fund Payments
[4] => Postage and Telegraph
[5] => Telephone Bill
[6] => Electric Bill and Electric Appliances
[7] => Hot and Cold Weather Charges
[8] => Travelling Allowance
[9] => Transportation Charges
[10] => POL Charges
[11] => CP Fund Payable
[12] => CP Fund Payments
)
[budget] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
[10] => 0
[11] => 0
[12] => 0
)
[1] => Array
(
[3012] => 0
[3013] => 0
[3014] => 0
[3015] => 0
[3016] => 0
[3017] => 0
[3018] => 0
[3019] => 0
[3020] => 0
[3021] => 0
[3022] => 0
[3023] => 0
[3024] => 0
)
)
i have displayed array keys headers like this.
enter code here foreach ($exp as $key => $value) {
echo '<th>'. $key .'</th>';
}
how to display the values as table rows.
CodePudding user response:
here is tested solution:
$th = array();
$td = array();
$col_cnt = 0;
foreach ($exp as $key => $value) {
$th[] = "<th>{$key}</th>";
foreach ($value as $val) {
$td[$col_cnt][] = $val;
}
$col_cnt ;
}
print "<table><thead>".implode("", $th)."</thead><tbody>";
for ($i=0; $i<count($td[0]); $i ) {
print "<tr>";
for ($j=0; $j<$col_cnt; $j ) {
print "<td>{$td[$j][$i]}</td>";
}
print "</tr>";
}
print "</tbody></table>";