Я пытаюсь поместить некоторые HTML-информации в массив.Разделить абзацы на многомерный массив
<p>Title 1</p>
<p><span>Content 1</span></p>
<p><span>Content 2</span></p>
<p>Title 2</p>
<p><span>Content 1</span></p>
<p><span>Content 2</span></p>
<p><span>Content 3</span></p>
Я хочу поместить их в массив с полями «title» и «content». Моя проблема состоит в том, чтобы связать эти p-метки, которые имеют диапазон и принадлежит к одному и тому же заголовку.
Результат должен быть: (strip_tags для заголовка и удалить срок для содержания)
[0]['title'] => 'Title 1',
[0]['content'] => ' <p>Content 1</p><p>Content 2</p>',
[1]['title'] => 'Title 2',
[1]['content'] => ' <p>Content 1</p><p>Content 2</p><p>Content 3</p>',
Моя попытка:
$paragraphs = explode('<p>', $html);
for ($i = 0 ; $i < count($paragraphs) ; $i++) {
$paragraphs[$i] = '<p>' . $paragraphs[$i];
if (strpos($paragraphs[$i], '<span') !== false) $content .= $paragraphs[$i];
else $title = $paragraphs[$i];
}
Но это объединит все содержимое одной переменной. Мне нужен вышеупомянутый массив ...
Я бы предложил вам посмотреть на [PHP DOM] (http://php.net/manual/en/book.dom.php) для этого. но попробуйте '$ content [$ counter]. = $ paragraph [$ i]' для начала. Вы должны увеличивать '$ counter' на изменение названия. – bansi