如何在php中取消嵌套嵌套列表

时间:2010-01-02 17:37:55

标签: php list split domdocument explode

我有一个像这样的嵌套无序列表(简化版本/深度是可变的):

<ul>
<li>
<a href="#">Root</a>
  <ul>
    <li>
      <a href="#">Page A</a>
      <ul>
        <li>
        <a href="#" title="Page A1">Page 1 2</a>
        </li>
      </ul>
    </li>
  </ul>
</li>
</ul>

使用PHP,是否有一种很好的方法可以“爆炸”这个嵌套列表(对于这个例子)3个列表?

感谢您的帮助

编辑:

预期输出为:

<ul>
    <li>
    <a href="#">Root</a>
    </li>
</ul>

<ul>
    <li>
        <a href="#">Page A</a>
    </li>
</ul>

<ul>
    <li>
    <a href="#" title="Page A1">Page 1 2</a>
    </li>
</ul>

1 个答案:

答案 0 :(得分:-1)

尝试:

$lists = '<ul>
<li>
<a href="#">Root</a>
    <ul>
        <li>
            <a href="#">Page A</a>
            <ul>
                <li>
                <a href="#" title="Page A1">Page 1 2</a>
                </li>
            </ul>
        </li>
    </ul>
</li>
</ul>';

$list_array = explode('<ul>', $lists);
foreach($list_array as $list){
    // Now you have a single list, but missing the <ul>
    // at the start. replace that and assign to a variable or whatever.
}