2012-05-20 43 views
-2

我正在寻找使用嵌套大括号的字符串创建树形结构。有人做过吗?有代码折叠的源代码编辑器使用它。我正在寻找在PHP中做,也许与正则表达式? 谢谢从嵌套大括号创建树形结构php

+0

字符串是什么样子的,期望的输出是什么,你期望我们是通灵吗? – 2012-05-20 20:47:12

+0

绝对*不*与正则表达式。 – nickf

回答

1

这显然取决于你的字符串的内容。 如果你非常幸运,

json_decode(strtr($str, '{}', '[]')) 

可能工作。幸运的意思是:你的字符串是一个有效的JSON数组,递归地包含除了对象之外的所有东西,所有的方括号用大括号代替,并且在字符串中没有大括号。例如: -

$str = '{3.14, null, {1, "two", 3}, {{"4.1 A", "4.1 B"}, 4.2}, true}' 

http://www.json.org/

0

一个解决方法就是做一些字符串处理来识别根节点的孩子树串并分析它们递归地创建最终的树见。

例如,如果带有嵌套大括号的根树字符串类似 “{1:AA {.. child 1 ..} {.. child 2 ..} {.. child 3 ..} ... {..child n ..}}“,您可以首先识别子树的字符串(子1到子n),然后递归地解析n个子字符串,直到构建最终的树结构。

你可以参考博客文章,介绍有关总体思路/算法求解此类问题来自嵌套括号或括号中的字符串制作一个树状结构此链接http://moderntone.blogspot.tw/2013/08/a-general-algorithm-for-creating-tree.html