<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_50083"> 最近、<br>1 > 2<br>1 > 2 > 3<br>1 > 2 > 3 > 4<br> みたいな表示ができるものが必要なんですが、アルゴリズムが分からないので、かなり遠回りしてしまいました。 Tucao さん、もっと良い方法があるといいですね。 <div class="blockcode"> <div id="code_et1"><ol> <li> public function getPaths($nodes)</li> <li> {</li> <li> $levels = $paths = array();</li> <li> // 配列レベルを再編成します</li> <li> foreach ($nodes as $id => $node)</li> <li> {</li> <li> $levels[ $node['level']][$id] = $node;</li> <li> }</li> <li> for ($i = 0; $i <count> { <li> if (is_array($levels[$ i]))</li> <li> {</li> <li> foreach ($levels[$i] as $level)</li> <li> {</li> <li> $id = $level['id'];</li> <li> $parent_id = $level['parent_id'];</li> <li> $parent = $ paths[$parent_id];</li> <li> // 親があり、現在のノードに追加されます</li> <li> if ($parent)</li> <li> {</li> <li> $paths[$id] = $parent;</li> <li> $paths[$id][] = $level [ 'id'];</li> <li> } </li> <li> else</li> <li> {</li> <li> $paths[$id][] = $level['id'];</li> <li> }</li> <li> }</li> <li> }</li> <li> }</li> <li> return $paths;</li> <li> }</li></count> </li> </ol></div> <em onclick="copycode($('code_et1'));"> コードをコピー</em> </div> </td></tr></table> <div id="comment_50083" class="cm"> </div> <div id="post_rate_div_50083"></div> <br><br>