dav*_*ave 4 php html-table function
不久前,这个功能发布在一个问题的答案中.作为一个学习者,我有兴趣了解这个功能.但是,我不能让它按原样运作.海报没有说他已经测试了这个功能,所以它可能是一个"概念"的帖子,意在表明方向.OTOH,我可能没有正确地调用它.请帮忙,因为我花了一些时间试图理解它.
($ data数组是我刚刚用来运行该函数的数组.)
<?php
$data = array("a" => "January", "b" => "February", "c" => "March" );
render_table ( $data ) ;
echo $html ;
//===========================================
function render_table($data) {
$html = '<table>';
$tr = array();
foreach (array_keys($data[0]) as $key) {
$tr[] = '<th>' . htmlspecialchars($key) . '</th>';
}
$html .= "\n" . '<thead>' . "\n" . '<tr>' . "\n" . implode("\n", $tr) . '</tr>' . '</thead>';
$tbody = array();
foreach ($data as $row) {
$tr = array();
foreach ($row as $value) {
$tr[] = '<td>' . htmlspecialchars($value) . '</td>';
}
$tbody[] = '<tr>' . "\n" . implode("\n", $tr) . '</tr>';
}
$html .= "\n" . '<tbody>' . "\n" . implode("\n", $tbody) . '</tbody>';
$html .= '</table>';
return $html;
}
?>
Run Code Online (Sandbox Code Playgroud)
First off, your data is wrong. The function takes an array of arrays as an argument.
Note the line
foreach (array_keys($data[0]) as $key) {
Run Code Online (Sandbox Code Playgroud)
......这个函数调用也是错误的; 它不应该采用第一个元素,它应该采用整个数组,因为它使用的是数组中的键.
试试这个:首先,将对array_keys的调用更改为使用整个数组,即
foreach(array_keys($data AS $key)
Run Code Online (Sandbox Code Playgroud)
然后改变你的输入和函数调用:
$data= array(
'data1' => array('one','two','three'),
'data2' => array('four','five','six'),
'data3' => array('seven','eight','nine')
);
echo render_table($data);
Run Code Online (Sandbox Code Playgroud)