簡體   English   中英

HTML表格到PHP數組,並帶有colspan和rowspan

[英]HTML Table to PHP array with atributes colspan and rowspan

我需要將HTML表(行和列)轉換為PHP數組。 例如:

<tr>
   <th rowspan="2">Username</th>
   <th colspan="2">Personal</th>
</tr>
<tr>
    <th>Name</th>
    <th>Birth date</th>
</tr>

在PHP中,我需要它成為:

array(
     [0] => array(
                 [0] => array(
                             ["value"] => "Username", 
                             ["rowspan"] => "2"),
                 [1] => array(
                             ["value"] => "Personal", 
                             ["colspan"] => "2")
                 ),
     [1] => array(
                 [0] => array(
                             ["value"] => "Name"
                             ),
                 [1] => array(
                             ["value"] => "Birth date"
                             )
                 )
);

所以,我的想法是,第一個數組將保留行,在每個行內我想要一個列數組,在列內我想要一個帶有單元格值和屬性的數組,我只需要像rowpan這樣的屬性和科爾斯潘。 因此,如果您有主意並知道如何做,請分享,我不需要您為我做,我只需要知道我該怎么做。

你應該使用數組的組合

array(
       array("rowspan"=>3,"colspan=>"2","class"=>"abc",id=>"row_1","value"=>array(1,2)
      );

第一個數組包含用於屬性的數組和用於顯示數據的值數組

解決方案(2013年3月1日)

因此,這是解決方案:首先,我發送一個表單,該表單的字段包含html表標簽。 然后我得到包含html的字符串,我正在用symfony來做,所以在我的動作中,我寫道: $stringHeader = $request->getParameter('htmlTable'); htmlTable是包含html表的表單中的字段(輸入)的名稱,然后將字符串轉換為XML:

$xmlstring = <<<XML
<?xml version='1.0'?> 
<document>
$stringHeader
</document>
XML;

最后將數據放入數組,html的結構如前所述。

$xml = simplexml_load_string($xmlstring);
$header = array();
$columns = array();
foreach ($xml->tr as $tr) {
    foreach ($tr->th as $th) {
        if (isset($th->attributes()->rowspan)) {
            $rowspan = $th->attributes()->rowspan;
            $columns[] = array("value" => "$th", "rowspan" => "$rowspan");
        } elseif (isset($th->attributes()->colspan)) {
            $colspan = $th->attributes()->colspan;
            $columns[] = array("value" => "$th", "colspan" => "$colspan");
        } else {
            $columns[] = array("value" => "$th");
        }

    }
    $header[] = $columns;
    unset($columns);
    $columns = array();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM