PHP - 在递归函数中连接

时间:2018-06-10 20:53:14

标签: php recursion

我的功能如下:

function getTree($r, $html) {
            foreach ($r as $entry) {
                if (count($entry['children']) == 0) {
                        $html .= '<li>' . $entry['parent_entry_id'] . '</li>';
                    } else {
                        getTree($entry['children'], $html);
                    }
                    //var_dump($html);
                }
                return $html;
            }

如果我这样称呼它

$html = '';
$dzoni = getTree($results, $html);
echo $dzoni;

E期望获得少量列表元素 但我得到空字符串。 这不是数据的问题。如果我var_dump他们我得到了结果。但结果并不是一直连接起来的。它只是停在某个时刻。 var_dump示例:

C:\wamp64\www\co_3\regular_view.php:72:string '<li>17</li>' 
C:\wamp64\www\co_3\regular_view.php:72:string '<li>17</li><li>18</li>' 
C:\wamp64\www\co_3\regular_view.php:72:string '<li>22</li>' 

我做错了什么?

1 个答案:

答案 0 :(得分:3)

当您递归时,您需要使用返回值而不是丢弃它:

getTree($entry['children'], $html);

应该是这样的:

$html = getTree($entry['children'], $html);