美好的一天,
我想获取数组内部每个数组的唯一列。
我的目标是根据数组数据动态绘制列。
示例:
$arr = array(
array('name' => 'Juan Dela Cruz', 'birthday' => '1988-07-11'),
array('name' => 'Will Smith', 'birthday' => '1996-02-22', 'age' => '23'),
array('name' => 'John Smith', 'birthday' => '1992-03-21', 'age' => '26', 'gender' => '<'),
);
因此列输出必须为; 姓名,生日,年龄,性别。
表输出必须是这样的。
我尝试了array_keys,但无法正常工作。
array_keys($arr)
请帮助大家。
谢谢
答案 0 :(得分:0)
您可以在完全合并的数组上使用array_keys
来获取所有键,然后使用这些键形成一个空表行,然后将数组的每一行与该行合并以进行输出:
$arr = array(
array('name' => 'Juan Dela Cruz', 'birthday' => '1988-07-11'),
array('name' => 'Will Smith', 'birthday' => '1996-02-22', 'age' => '23'),
array('name' => 'John Smith', 'birthday' => '1992-03-21', 'age' => '26', 'gender' => 'M'),
);
$keys = array_keys(array_merge(...$arr));
// header
echo '<table><thead><tr><th>' . implode('</th><th>', $keys) . '</th></tr></thead><tbody>';
// body
// make an empty row
$empty = array_combine($keys, array_fill(0, count($keys), ''));
foreach ($arr as $a) {
echo '<tr><td>' . implode('</td><td>', array_merge($empty, $a)) . '</td></tr>';
}
echo '</tbody></table>';
输出:
<table>
<thead>
<tr><th>name</th><th>birthday</th><th>age</th><th>gender</th></tr>
</thead>
<tbody>
<tr><td>Juan Dela Cruz</td><td>1988-07-11</td><td></td><td></td></tr>
<tr><td>Will Smith</td><td>1996-02-22</td><td>23</td><td></td></tr>
<tr><td>John Smith</td><td>1992-03-21</td><td>26</td><td>M</td></tr>
</tbody>
</table>