使用单个正则表达式将字符串解析为多维数组?

时间:2013-07-17 03:17:29

标签: php regex arrays multidimensional-array

我想知道这里是否有人可以帮助我。我有以下字符串:

$str = 'unit1(field1,field2,field3),unit2(field4,field5,field6)';

我正在尝试解析此字符串以创建以下数组:

array(
  'unit1' => array('field1', 'field2', 'field3')
  'unit2' => array('field4', 'field5', 'field6')
)

我对正则表达式毫无希望,所以我甚至不确定从哪里开始。

由于

1 个答案:

答案 0 :(得分:3)

您可以在不使用正则表达式的情况下执行此操作

 $str = 'unit1(field1,field2,field3),unit2(field4,field5,field6)';
 $str = trim($str, ")");
 $parts = explode("),",$str);
 $results = array();
 foreach($parts as $part){
      list($key, $value) = explode("(", $part,2);
      $results[$key] = explode(",", $value);
 }

现在$ results将包含您指定的输出。