我正在尝试构建一个呈现嵌套注释的评论系统。这个功能对我有用。但是,我无法弄清楚在哪里以及如何“返回”数据,因为我不想回应这个div。
我正在使用的数组是多维的,其中“child”包含嵌套的注释。
function display_comments($commentsArr, $level = 0) {
foreach ($commentsArr as $info) {
$widthInPx = ($level + 1) * 30;
echo '<div style="width:' . $widthInPx . '"></div>';
if (!empty($info['childs'])) {
display_comments($info['childs'], $level + 1);
}
}
}
答案 0 :(得分:0)
你只需要将$ result作为参数传递给函数,然后一点一点地添加它。
UPD :我已经根据您的回复略微调整了该功能的代码。请参考此示例:
$commentsArr = [
[
'text' => 'commentText1',
'childs' => [
[
'text' => 'commentTextC1'
],
[
'text' => 'commentTextC2'
],
[
'text' => 'commentTextC3',
'childs' => [
[
'text' => 'commentTextC3.1'
],
[
'text' => 'commentTextC3.2'
],
]
],
]
],
[
'text' => 'commentText2'
]
];
function display_comments($commentsArr, $level = 0, $result = ['html' => ''])
{
foreach ($commentsArr as $commentInfo) {
$widthInPx = ($level + 1) * 30;
$result['html'] .= '<div data-test="' . $widthInPx . '">'.$commentInfo['text'].'</div>';
if (!empty($commentInfo['childs'])) {
$result = display_comments($commentInfo['childs'], $level + 1, $result);
}
}
return $result;
}