У меня это как строковый ввод.Преобразование строки в многомерный массив в PHP
$str = '[2]Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vulputate cursus nulla, at rhoncus ante egestas vitae. [3]Cras euismod aliquet hendrerit. [3]Integer tortor lorem, suscipit a ante id, faucibus iaculis dolor. Sed aliquet, erat sit amet porta efficitur, eros lorem hendrerit purus, eget pellentesque lacus sapien ut dolor. [3]Donec eget accumsan velit. [4]Vestibulum consectetur enim in nunc fermentum lacinia. Maecenas fermentum rutrum sodales. Quisque vulputate, dolor tempus luctus cursus, massa urna ultrices odio, non dictum sem nulla ac mi. Quisque egestas tellus velit, non elementum lorem consequat id. Proin bibendum feugiat mollis. Sed vel odio neque. [4]Tempo. [2]Phasellus ut mauris purus. Quisque vel tortor erat. [2]Donec eget accumsan velit.';
И я пытаюсь получить на это ...
array (
[0] => array (//First [2] and everything below
[0] => Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vulputate cursus nulla, at rhoncus ante egestas vitae.
[1] => array (//[3]s that belong to first [2]
[0] => Cras euismod aliquet hendrerit. //First [3]
[1] => Integer tortor lorem, suscipit a ante id, faucibus iaculis dolor. Sed aliquet, erat sit amet porta efficitur, eros lorem hendrerit purus, eget pellentesque lacus sapien ut dolor. //Second [3]
[2] => array (//Third [3] and everything below
[0] => Donec eget accumsan velit.
[1] => array (
[0] => Vestibulum consectetur enim in nunc fermentum lacinia. Maecenas fermentum rutrum sodales. Quisque vulputate, dolor tempus luctus cursus, massa urna ultrices odio, non dictum sem nulla ac mi. Quisque egestas tellus velit, non elementum lorem consequat id. Proin bibendum feugiat mollis. Sed vel odio neque.
[1] => Tempo.
)
)
)
[1] => Phasellus ut mauris purus. Quisque vel tortor erat. //Second [2]
[2] => Donec eget accumsan velit. //Third [2]
)
Я пробовал все, что я знал и мог найти @ php.net и везде, но Я потратил около шести часов на это, и я все еще застрял. Я попытался взорвать, preg_replace, array_walk_recursive (вместе с взрывом), перейдя от самой большой иерархии к меньшей (лучшие результаты до сих пор) и наоборот, но ничего. Как преобразовать строку в многомерный массив в PHP, задав иерархию по тегам в строке?
Большое спасибо!
Вам нужно сделать, это рекурсивно: сначала взорвать на '[2]', затем _walk_ результирующий массив, расщепляющийся на '[3]', пройдя результирующее разбиение массива на '[4]' и т. д., пока вы не получите пустой на любом уровне, прежде чем переходить к следующему –
Эй, Марк, спасибо за быстрый ответ! Каждый раз, когда я пытался взорваться, у меня было первое '[3]' s на том же уровне массива, что и родительский '[2]'. Только '[3]', у которого '[4]' под ним было передано (позже, другим взрывом) на более низкий уровень, что привело к той же самой проблеме, только ниже более глубокой в массиве. – Holokinesis
Я получил уведомление о вашем ответе, Марк, но, похоже, теперь он ушел. Что-то пошло не так? @StackOverflow? – Holokinesis