将数组作为无序列表写入 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);