解析多维数组的名称

时间:2013-11-22 23:27:08

标签: php preg-match preg-match-all

我正在使用PHP来尝试解析匹配这种模式的字符串:

field[foo][bar]

我使用preg_match_all来获取数组的索引(在这种情况下为'foo'和'bar')。这是我的代码,但它不起作用:

preg_match_all("/\w+(\[(\w*)\])*/", $string, $matches);

我正在接受这些比赛:

array

    (3) {
      [0]=>
      array(1) {
        [0]=> string(15) "field[foo][bar]"
      }
      [1]=>
      array(1) {
        [0]=> string(5) "[bar]"
      }
      [2]=>
      array(1) {
        [0]=> string(3) "bar"
      }
    }

我希望有类似的东西:


    array(3) {
      [0]=>
      array(1) {
        [0]=> string(15) "field[foo][bar]"
      }
      [1]=>
      array(1) {
        [0]=> string(5) "[foo]"
        [0]=> string(5) "[bar]"
      }
      [2]=>
      array(1) {
        [0]=> string(3) "foo"
        [0]=> string(3) "bar"
      }
    }

(实际上,我只对最后一个数组感兴趣,没有方括号的那个)

我不知道为什么我只得到最后一场比赛......

有什么想法吗? :)

1 个答案:

答案 0 :(得分:0)

尝试使用:

preg_match_all("/(\[(\w*)\])/", $string, $matches);