我有一個 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;
}
- 1 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消