本文介绍了PHP递归遍历对象树的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个可以包含其他 $branch 对象的 $branch 对象:

I have got a $branch object that can contain other $branch objects:

$branch->children();

他们每个人都可以有 $apples 作为孩子.

Each of them can have $apples as children.

$branch->apples();

如何递归地从 $branch 收集所有的 $apples?

How can I collect all of the $apples from the $branch recursively?

function collectApples($branch){
    $apples = array();
    ?
    return $apples;
}

推荐答案

使用 DFS:

function collectApples($branch) {
    $apples = $branch->apples();
    foreach ($branch->children() as $child) {
        $apples = array_merge($apples, collectApples($child));
    }
    return $apples;
}

这篇关于PHP递归遍历对象树的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 08:12