在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中将字符串转换为多维数组,并通过字符串中的标签设置层次结构?

非常感谢!

安迪

这段代码

$str = '<your_string>';

function stringToArray($str, $delimiter = 2, $isFirst = false) {
    $delimiterStr = "[{$delimiter}]";
    $outArr = array();
    if (strpos($str,$delimiterStr)!==false) {
        $outArr = explode($delimiterStr, $str);         
        $isFirstElement = true;
        $tempArr = array();
        $key = 0;
        foreach ($outArr AS $v) {

            if (!empty($v))
            {
                if ($isFirstElement) {
                    $tempArr[$key] = stringToArray($v, $delimiter+1);
                    $key++;
                } else {
                    $tempArr[$key][] = stringToArray($v, $delimiter+1);
                }                                                       
            }
            $isFirstElement = false;                                
        }
        $outArr = $tempArr;     
    }
    if (!$outArr) {return trim($str);} else {return $outArr;}
}

$elements = stringToArray($str);
print_r($elements[0]);

将返回

Array
(
[0] => Array
    (
        [0] => Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vulputate cursus nulla, at rhoncus ante egestas vitae.
        [1] => Array
            (
                [0] => Cras euismod aliquet hendrerit.
                [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.
                [2] => Array
                    (
                        [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.
[2] => Donec eget accumsan velit.
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP中将字符串转换为多维数组

来自分类Dev

在PHP中将字符串转换为多维数组

来自分类Dev

PHP将字符串转换为多维数组

来自分类Dev

PHP将目录的多维数组转换为字符串

来自分类Dev

PHP:将多维数组转换为字符串

来自分类Dev

在PHP中将字符串数组转换为普通数组

来自分类Dev

在PHP中将字符串转换为数组

来自分类Dev

在PHP中将数组键转换为字符串

来自分类Dev

在PHP中将字符串转换为数组

来自分类Dev

在PHP中将数组转换为字符串

来自分类Dev

在PHP中将字符串转换为数组

来自分类Dev

在 PHP 中将字符串转换为关联数组

来自分类Dev

在JavaScript(GAS)中将字符串转换为多维数组中的日期时出现问题

来自分类Dev

在 Neo4J 中将字符串转换为多维数组

来自分类Dev

将字符串数组转换为多维数组

来自分类Dev

多维数组将内部数组转换为字符串

来自分类Dev

在Ruby中将字符串转换成多维数组?

来自分类Dev

PHP / jQuery-如何将多维PHP数组转换为JSON字符串?

来自分类Dev

将JSON(作为字符串)转换为多维数组

来自分类Dev

将对象转换为多维字符串数组

来自分类Dev

JavaScript字符串转换为多维数组

来自分类Dev

将多维数组转换为特定的字符串格式

来自分类Dev

将结果集转换为多维字符串数组

来自分类Dev

将json字符串转换为多维数组

来自分类Dev

JavaScript字符串转换为多维数组

来自分类Dev

将字符串转换为多维数组

来自分类Dev

将多维数组转换为字符串

来自分类Dev

将字符串转换为多维数组

来自分类Dev

如何让javascript将多维数组转换为字符串?