1

我有一个字符串,它保存属性和键值以访问对象上的值..

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

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

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

我走在正确的轨道上还是有更好的方法可以尝试?

谢谢。

4

2 回答 2

1

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

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

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

于 2013-03-06T08:16:49.270 回答
0

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

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

然后在 PHP 中你可以遍历它:

foreach($_POST['changed_values'] as $changed_value) {
  ........
}
于 2013-03-06T08:21:16.950 回答