PHP字符串到数组键

时间:2013-03-06 08:09:39

标签: php regex

我有一个字符串,其中包含访问对象值的属性和键值。

例如,字符串是“property_name [key1] [key2] [key3]”,它与$obj->property_name[key1][key2][key3]

相关

我一直在尝试用正则表达式解析字符串,但我所有的尝试都是徒劳的。

到目前为止,我的正则表达式看起来像这样,但它不会得到key2。 ^(\w+)\[([^\]]+)\](?:(\[([^\]]+)\])+)

我是在正确的轨道上还是有更好的方法来做到这一点我应该尝试?

感谢。

2 个答案:

答案 0 :(得分:1)

正则表达式可能如下所示:

^(\w+)(?:\[(\w+)\])+

然后您的匹配将包含属性名称和数组键。如果密钥数量不同,请使用此值来获取实际值:Using a path to an array item

答案 1 :(得分:0)

您应该使用AJAX,并将包含内部对象的有用数组发送到您可以使用PHP解析的服务器。

var changed_values = [
                      {
                       'part_of_form': 'XX',
                       'field': 2,
                       'subfield': 3
                      },
        .......
                     ]

然后在PHP中你可以循环它:

foreach($_POST['changed_values'] as $changed_value) {
  ........
}