为了账号安全,请及时绑定邮箱和手机立即绑定

如何在数组中的每组 li 之前找到 li 并注入 ul

如何在数组中的每组 li 之前找到 li 并注入 ul

PHP
繁花如伊 2023-07-21 18:24:44
我有一个 html 标签的索引数组,每个索引都包含 html 开始和结束标签及其值。我想修改其中一些,例如我希望 li 标签用 ul 包裹在它们周围。但具有相同的数组顺序。Array([0] => <li>some text</li>[1] => <pre>text area data</pre>[2] => <li>some value</li>)这就是我想要的样子 Array([0] => <ul>[1] => <li>some text</li>[2] => </ul>[3] => <pre>text area data</pre>[4] => <ul>[5] => <li>some value</li>[6] => </ul>)    $arr2 = [];    $a=0;    foreach($arr1 as $k => $v)    {        if($a == 0)        $arr2[] = '<ul>';        $a=1;               if(strpos($v, '<li>') !== false){        $arr2[] = $v;    }
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

此代码跟踪您当前是否在列表中,然后针对每个项目检查它是否以开头<li>以及状态。


如果它<li>不在列表中,则添加<ul>第一个并设置状态,如果不是,<li>则在列表中添加</ul>。


为了确保它关闭任何列表,在循环之后如果它在列表中,那么它会关闭标签......


$arr2 = [];

$inList = false;

foreach($arr1 as $index => $value)

{

    if ( substr(trim($value), 0, 4) == "<li>" ) {

        if ( ! $inList )    {

            $arr2[] = '<ul>';

            $inList = true;

        }

    }

    else    {

        if ( $inList )  {

            $arr2[] = '</ul>';

            $inList = false;

        }

    }

    $arr2[] = $value;

}

if ( $inList )  {

    $arr2[] = '</ul>';

    $inList = false;

}


查看完整回答
反对 回复 2023-07-21
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信