我有一个这种形式的字符串
$navigation="<li>A</li><li>B</li><li>C</li><li>A</li><li>B</li><li>C</li><li>A</li><li>B</li><li>C</li>";
列表是从数据库动态生成的,因此元素的数量不固定。我想在每个第5个元素之后拆分这个列表,所以如果这个字符串中有10个"<li></li>"
元素,我应该得到两个字符串output1和output2。
我尝试过爆炸,但它不起作用,因为我们必须对第n个元素施加限制,我也尝试过string_split,但这也不起作用。
那么解决方案是什么?
艾哈迈尔
答案 0 :(得分:0)
你可以这样做:
$s = "<li>A</li><li>B</li><li>C</li><li>A</li><li>B</li><li>C</li><li>A</li><li>B</li><li>C</li>";
if (preg_match_all('~((?:<li>.*?</li>){5})~i', $s, $arr))
print_r($arr);
<强>输出:强>
Array
(
[0] => Array
(
[0] => <li>A</li><li>B</li><li>C</li><li>A</li><li>B</li>
)
[1] => Array
(
[0] => <li>A</li><li>B</li><li>C</li><li>A</li><li>B</li>
)
)