0

我有如下所示的数据结构

Array
(
    [0] => Array
        (
            [name] => dummy0
            [projects] => Array
                (
                    [project_names] => project0
                    [dates] => Array
                        (
                            [0] => 5
                            [1] => 11
                            [2] => 28
                        )

                )

        )

    [1] => Array
        (
            [name] => dummy1
            [projects] => Array
                (
                    [project_names] => project1
                    [dates] => Array
                        (
                            [0] => 10
                            [1] => 12
                            [2] => 28
                        )

                )

        )

)

我想得到以下格式的输出

虚拟0

   Project0  
    5
    11
    28

假人1

  Project1
   10
   12
   28

我使用了下面的代码片段,但没有得到输出,因为我除外

                  [replies;block=begin;sub1=projects]

                      [replies_sub1.val;block=tr;sub1=dates]
                        [replies_sub1_sub1.val;block=td]

                  [replies;block=end;comm=text:p]

任何形式的帮助将不胜感激

4

1 回答 1

0

问题是您的子数据dates实际上位于 2 个级别的列之下:项目/日期。而 TBS 不支持自动子块的这种数据结构。

解决方案是更改您的数据结构以使其具有这样的效果:

(
    [0] => Array
        (
            [name] => dummy0
            [dates] => Array
                (
                    [0] => 5
                    [1] => 11
                    [2] => 28
                )
            ....
        )
    ....    

如果您无法更改结构,您可以简单地将参数ondata与自定义函数一起使用,该函数将在您的数据中创建一个新的(虚拟)列。

PHP:

function f_ondata($BlockName,&$CurrRec,$RecNum) {
    $CurrRec['dates_z'] = $CurrRec['projects']['dates'];
}

HTML:

<div style="border: solid 1px red;">

    [replies;block=begin;sub1=dates_z;ondata=f_ondata]

    <table border="1">

      <tr>                
        <td>
            [replies.projects.project_names]
        </td>
        <td>&nbsp;</td>
      </tr>

      <tr>                
        <td>&nbsp;</td>
        <td>
            [replies_sub1.val;block=tr]
        </td>
      </tr>

    </table>

    <text:p> [replies;block=end;comm=text:p] </text:p>
<div>
于 2015-08-03T16:08:56.340 回答