如何以pdf形式单独打印每个数组的值?

How to individually print the values per array in pdf form?

提问人:pal 提问时间:10/6/2023 最后编辑:pal 更新时间:10/13/2023 访问量:108

问:

我想以pdf形式打印每个数组的值,因为该程序包含大量数组,并且永远不会在数据方面具体化。

这是我的代码:模型中的函数,它调用数据库中的所有数据。$this->submissionPSDirectCost

        $ps_data_string = "";
        foreach ($this->submissionPSDirectCost as $ps) {
            $ps_data = [
                "<b>" . (($ps->ps_type == 0) ? "Salary" : "Honoraria") . "</b>",
                "<br>",
                $ps->ps_quantity ,
                $ps->title,
                "at",
                $ps->salary ,
                "/Month x",
                $ps->ps_num_duration,
                $ps->mode_payment,
                "<br>",
            ];
            $ps_data_string .= "<tr><td colspan=\"1\">" . implode(" ", $ps_data) . "</td></tr>";
            
        }

        $ps_amount = " ";
        foreach ($this->submissionPSDirectCost as $ps) {
            $psamount =[
            $ps->amount,
            "<br>",
            ];
            $ps_amount .= "<td colspan=\"1\">" . implode(" ", $psamount) . "</td>";
        }

然后这是我的 html 内联代码,用于调用$ps_data_string

'.$ps_data_string.''.$ps_amount.'

单击此图片: 金额应在“已批准预算总额”列中

PHP HTML 数组

评论

1赞 mickmackusa 10/13/2023
该问题尚未包含最小的可重现示例,应进行编辑以避免页面关闭。

答:

0赞 romeo1987 10/6/2023 #1

正如另一个答案中所建议的,直接在循环中创建行应该可以达到目的。但是,如果我正确理解了要求,您需要(移位,在它里面)仅在连接所有 13 个元素后创建行$ps_data$ps_data_string$ps_data

foreach ($this->submissionPSDirectCost as $ps) {
  $ps_data = null;
  $ps_data[] = ($ps->ps_type == 0) ? "Salary" : "Honoraria";
  //remaining 12 elements of $ps_data to follow
  $ps_row = implode(" ", $ps_data);
  $ps_data_string .= "<tr><td colspan=\"3\">$ps_row</td></tr>";
}

然后你在你的html中使用。<table><?php echo $ps_data_string;?></table>

评论

0赞 pal 10/9/2023
嗨@romeo1987谢谢你,它适用于行!但是,所有数据都是按循环打印的。它使数据变得多余,我该如何避免它?谢谢
0赞 romeo1987 10/9/2023
您@pal可以编辑您的问题并包含一些显示当前输出(使用此代码)与预期输出的示例数据?
0赞 pal 10/13/2023
嗨,罗密欧,我已经编辑了我的问题
0赞 romeo1987 10/13/2023
@pal您共享了模板(而不是示例数据)并完全修改了代码(最初发布的代码)。因此,建议的答案不再相关。
0赞 Khribi Wessim 10/6/2023 #2

您可以按如下方式修改代码:

($this->submissionPSCost as $ps) {
$ps_data_row = array $ps_data_row = ($ps->ps_type == ) ? "Salary" : "Haria";
$ps_data_row[] = $ps->ps_quantity;
$ps_data_row[] = $ps->title;
$ps_data_row[] = "at";
$ps_data_row[] = $ps->salary;
$ps_data_row[] = "/Month x";
$ps_data_row[] = $ps->ps_num_duration;
$ps_data_row[] = $ps->mode_payment;
$ps_data_row[] = " ";
$ps_data_row[] = " ";
$ps_data_row[] = $ps->amount;
$ps_data[] = '<tr><td>'.implode('</td><td>', $ps_data_row).'</td></tr>';
}

$ps_data_string = implode("", $ps_data);

现在,每一行数据都存储在数组中,然后将其内爆以创建 HTML 表行结构。然后将生成的行添加到数组中。$ps_data_row</td><td>$ps_data

最后,您可以在 HTML 模板中使用它,如下所示:$ps_data_string

>
php echo $ps_data_string; ?>
</table>

评论

0赞 pal 10/9/2023
嗨,@Khribi,<table>标签对我不起作用。它不会显示收集到的所有数据