35791


**クラス内のメソッドで、下記関係が成立しているとき、再帰処理するには？**  
・childには、「中身がある配列」か「空の配列」が格納されているのですが、「空の配列」になるまで処理継続したい

[code]

    public function a()
      //中略
      foreach ($data as $k => $v) {
        $this->r[] = $k;
        $this->f($v);
      }
    }
    public function f($v)
    {
      $child = $v->child;
      foreach ($child as $k2 => $v2) {
        $this->r[] = $k2;
        $this->f2($v2);
      }
    }
    public function f2($v2)
    {
      $child = $v2->child;
      foreach ($child as $k3 => $v3) {
        $this->r[] = $k3;
        $this->f3($v3);
      }
    }
    public function f3($v3)
    //以下略
    
[/code]


CC BY-SA 3.0
2017-06-22T00:31:35.027
35788
2017-06-22T01:30:57.420
2017-06-22T00:37:18.943
7886
7886
question
php
親子関係で再帰処理したい


再帰呼び出しとは、プログラムのある関数の中から自分自身の関数を呼び出すことである。  
ご質問中のソースにいくつかのメソッドがあるんですが、実際にロジックは一緒ですので、下記のロジックに変更して見てください。

[code]

    public void mainMethod(element) {
      if(element->field is Empty) {
        return;
      }
      for(ele in element->field) {
        mainMethod(ele);
      }
    }
    
[/code]

よろしくお願いします。


CC BY-SA 3.0
2017-06-22T01:30:57.420
35791
2017-06-22T01:30:57.420
23688
35788
answer