从多维数组中呈现HTML表

时间:2016-09-05 19:58:01

标签: php html arrays

我需要从多维数组中提取数据

       array(2) {
          ["label"]=>
          string(6) "label1"
          ["children"]=>
          array(3) {
            [1]=>
            array(1) {
              ["label"]=>
              string(6) "label2"
            }
            [2]=>
            array(1) {
              ["label"]=>
              string(6) "label3"
            }
           [3]=>
           array(2) {
             ["label"]=>
             string(6) "label4"
             ["children"]=>
             array(2) {
               [1]=>
               array(1) {
                 ["label"]=>
                 string(6) "label5"
               }
               [2]=>
               array(1) {
                 ["label"]=>
                 string(6) "label6"
               }
            }
          }
        }
      }

进入具有以下结构的表:



	<table border="1">
   			<tr>
   				<td colspan="4">label1</td>
   			</tr>
   			<tr>
   				<td colspan="1">label2</td>
   				<td colspan="1">label3</td>
   				<td colspan="2">label4</td>
   			</tr>
   			<tr>
   				<td></td>
   				<td></td>
   				<td colspan="1">label5</td>
   				<td colspan="1">label6</td>
   			</tr>
   		</table>
&#13;
&#13;
&#13;

阵列的深度和结构是动态的,但基本规则保持不变。

关于如何实现这一目标的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

将多维数组转换为单个数组,然后遍历单个数组,创建所需的html字符串,即:

转换数组: 见Convert multidimensional array into single array

在php脚本中循环遍历单个数组,并将字符串回显到浏览器:

<?php
  function createHtml($singleArray){
    $html = '<table border="1">';
    foreach($singleArray as $label){
      $colspan = 1;
      //If then statement that sets $colspan based on label

      $html .= '<tr>';
      $html .= '<td colspan="'.$colspan.'">'.$label.'</td>';
      $html .= '</tr>';
    }
    $html .= '</table>';
    echo $html;
  }

?>