将数组作为无序列表写入 PDF
Write array as unordered list to PDF
我有一个从数组创建无序列表的递归函数。我现在想要使用 FPDF 在 PDF 中列出该列表。我应该如何修改此功能以编写PDF?我尝试了以下方法,但在生成的 PDF 中没有结果。我认为这与 FPDF 需要通过串联编写 Cell
内容的方式有关。
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf_result = '';
function walk($array)
{
//convert object to key-value array
if (is_object($array)) {
$array = (array)$array;
}
$pdf_result .= "<ul>";
foreach ($array as $key => $value) {
if (is_int($value) || is_string($value)) {
$pdf_result .= "<li>" . $value;
} elseif (is_array($value) || is_object($value)) {
walk($value);
}
$pdf_result .= "</li>";
}
$pdf_result .= "</ul>";
}
walk($roots);
$pdf->Cell(40,10,$pdf_result);
$pdf->Output('MD by Year');
您的 $pdf_result
不是全局变量。所以一定是这样的:
function walk($array)
{
//convert object to key-value array
if (is_object($array)) {
$array = (array)$array;
}
$pdf_result = "<ul>";
foreach ($array as $key => $value) {
if (is_int($value) || is_string($value)) {
$pdf_result .= "<li>" . $value;
} elseif (is_array($value) || is_object($value)) {
$pdf_result .= walk($value);
}
$pdf_result .= "</li>";
}
$pdf_result .= "</ul>";
// Here we return result array
return $pdf_result;
}
// And here we set another-scope variable from function
$pdf_result = walk($roots);
我有一个从数组创建无序列表的递归函数。我现在想要使用 FPDF 在 PDF 中列出该列表。我应该如何修改此功能以编写PDF?我尝试了以下方法,但在生成的 PDF 中没有结果。我认为这与 FPDF 需要通过串联编写 Cell
内容的方式有关。
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf_result = '';
function walk($array)
{
//convert object to key-value array
if (is_object($array)) {
$array = (array)$array;
}
$pdf_result .= "<ul>";
foreach ($array as $key => $value) {
if (is_int($value) || is_string($value)) {
$pdf_result .= "<li>" . $value;
} elseif (is_array($value) || is_object($value)) {
walk($value);
}
$pdf_result .= "</li>";
}
$pdf_result .= "</ul>";
}
walk($roots);
$pdf->Cell(40,10,$pdf_result);
$pdf->Output('MD by Year');
您的 $pdf_result
不是全局变量。所以一定是这样的:
function walk($array)
{
//convert object to key-value array
if (is_object($array)) {
$array = (array)$array;
}
$pdf_result = "<ul>";
foreach ($array as $key => $value) {
if (is_int($value) || is_string($value)) {
$pdf_result .= "<li>" . $value;
} elseif (is_array($value) || is_object($value)) {
$pdf_result .= walk($value);
}
$pdf_result .= "</li>";
}
$pdf_result .= "</ul>";
// Here we return result array
return $pdf_result;
}
// And here we set another-scope variable from function
$pdf_result = walk($roots);