qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-高级专业版🔥

PHP将多层次深度的UL添加到数组中

时间2023-03-26 18:20:48 提问来自 湖北省武汉市 的网友 分类创作 浏览302
<?php $ul = '<ul> <li>Item 1</li> <li>Item 2 <ul> <li>Sub Item 1</li> <li>Sub Item 2</li> </ul> </li> </ul>'; // Create a new DOMDocument instance //创建一个新的DOMDocument实例。 $doc = new DOMDocument(); // Load the HTML string into the document instance. //将HTML字符串加载到文档实例中。 $doc->loadHTML($ul); // Get all of the list items from the document. //从文档中获取所有的列表项。 $listItems = $doc->getElementsByTagName('li'); // Initialize an empty array to store our list items in. //初始化一个空数组来存储我们的列表项。 $itemsArray = array(); foreach ($listItems as $listItem) { //遍历所有的列表项,并将其添加到数组中。 addListItemToArray($listItem, 0, $itemsArray); //将每个LI元素添加到数组中,并使用递归方法处理UL子元素。 } function addListItemToArray(DOMElement $item, int $level, &$array) { //定义函数,将LI元素及对应子UL添加进数组中: if (isset($array[$level])) { //如果当前层已存在于数组中,就在该层后面追加LI元素内容: array_push($array[$level], trim($item->nodeValue));          //trim() 函数用于去除字符串首尾处的 空格或者 其他 预定义字 符。         //array_push() 函数向 数 组 添 加 新 元 素 ( 向 数 组 末 峁 插 入 ) 。        //nodeValue 返回节点的值(text content)             } else {                 $array[$level] = [trim($item->nodeValue)];                            //如果当前层不存在于数组中,就在该层上直接设定LI元素内容     }              foreach ($item->childNodes as $childNode) {                            //遍历子节点(此处是UL),并递归处理:                         if ($childNode instanceof DOMElement && strtolower($childNode->tagName == 'ul')) {                               //如果子节

点击这里,进行内容创作

创作工场 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!

上一篇 PHP实现多层次的UL代码 下一篇 “ 电力系统工程师”的生涯人物访谈报告