Php 使用单个正则表达式将字符串解析为多维数组?
我想知道这里是否有人能帮我。我有以下字符串:Php 使用单个正则表达式将字符串解析为多维数组?,php,regex,arrays,multidimensional-array,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') ) 我对正则表达式非常失望,所以我甚至不知道从哪里开始
$str = 'unit1(field1,field2,field3),unit2(field4,field5,field6)';
我正在尝试分析此字符串以创建以下数组:
array(
'unit1' => array('field1', 'field2', 'field3')
'unit2' => array('field4', 'field5', 'field6')
)
我对正则表达式非常失望,所以我甚至不知道从哪里开始
谢谢您无需使用正则表达式即可完成此操作
$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将包含您指定的输出 我认为您在底部的
unit2
中缺少了一些单引号?要了解regex,您可以从这里开始。然后查看PHP文档中的preg\u match
和preg\u match\u all
。一旦你阅读了所有内容,尝试构建自己的解决方案,然后返回失败的代码,可能会有人提供帮助。你的第一个代码示例不是字符串。为什么不选择一种更标准的格式,如JSON:[{“unit”:“unit1”,“fields”:[“field1”,“field2”]},
和JSON_decode($str)
?