【问题标题】:Wrapping each child key within an UL将每个子密钥包装在 UL 中
【发布时间】:2013-12-05 15:11:11
【问题描述】:

我想将每个子数组包装在 <ul> 中,但我不完全确定它是如何完成的?

function RecursiveWrite($array) {
    foreach ($array as $v) {

        echo '<li>';

            echo $v['id'];

            if(isset($v['children']))
                RecursiveWrite($v['children']);

        echo '</li>';

    }
}

echo '<ul>';
RecursiveWrite($comments);
echo '</ul>';

输出:

    <ul>
        <li>81
            <li>173</li>
            <li>84
                <li>85
                    <li>131
                        <li>176</li>
                    </li>
                </li>
                <li>174</li>
                <li>175</li>
            </li>
        </li>
        <li>178</li>
    </ul>

我想要得到的输出:

<ul>
    <li>81
        <ul>
            <li>173</li>
            <li>84
                <ul>
                    <li>85
                        <ul>
                            <li>131
                                <ul>
                                    <li>176</li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <li>174</li>
                    <li>175</li>
                </ul>
            </li>
        </ul>
    </li>
    <li>178</li>
</ul>

原始数组:

array (
  0 => 
  array (
    'id' => '81',
    'parent' => NULL,
    'children' => 
    array (
      0 => 
      array (
        'id' => '173',
        'parent' => '81',
      ),
      1 => 
      array (
        'id' => '84',
        'parent' => '81',
        'children' => 
        array (
          0 => 
          array (
            'id' => '85',
            'parent' => '84',
            'children' => 
            array (
              0 => 
              array (
                'id' => '131',
                'parent' => '85',
                'children' => 
                array (
                  0 => 
                  array (
                    'id' => '176',
                    'parent' => '131',
                  ),
                ),
              ),
            ),
          ),
          1 => 
          array (
            'id' => '174',
            'parent' => '84',
          ),
          2 => 
          array (
            'id' => '175',
            'parent' => '84',
          ),
        ),
      ),
    ),
  ),
  1 => 
  array (
    'id' => '178',
    'parent' => NULL,
  ),
)

【问题讨论】:

  • 你不能在数组循环之前之前回显&lt;ul&gt;吗?

标签: php arrays recursion multidimensional-array


【解决方案1】:

看起来您只需要在 foreach 循环之前和之后回显 &lt;ul&gt; 标记即可。

简单如...

function RecursiveWrite($array) {
    echo "<ul>";
    foreach ($array as $v) {
        ...
    }
    echo "</ul>";
}

RecursiveWrite($comments);

【讨论】:

  • @Chaplin 无需感到愚蠢 :) 即使您的问题确实很简单,但您实际上 付出了一些努力,仅此一项就使您比至少 60% 的这几天问的问题。继续努力,再见;)
猜你喜欢
  • 2011-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 2016-06-06
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多