Php 将字符串转换为变量

Php 将字符串转换为变量,php,Php,如何转换这个 $myvar = '[aaa](11,22,33,44,55)[bbb](1,2,3,4,5)'; 到那 $arr_name[1] = 'aaa'; $arr_val[1] = '11,22,33,44,55'; $arr_name[2] = 'bbb'; $arr_val[2] = '1,2,3,4,5'; 我应该使用什么函数?您可以尝试使用正则表达式提取键和变量,然后将它们插入数组: $keys = array(); preg_match_all("/\[.+\]/",

如何转换这个

$myvar = '[aaa](11,22,33,44,55)[bbb](1,2,3,4,5)';
到那

$arr_name[1] = 'aaa';
$arr_val[1] = '11,22,33,44,55';

$arr_name[2] = 'bbb';
$arr_val[2] = '1,2,3,4,5';

我应该使用什么函数?

您可以尝试使用正则表达式提取键和变量,然后将它们插入数组:

$keys = array();
preg_match_all("/\[.+\]/", $myvar, $keys);

$values = array();
preg_match_all("/\(.+\)/", $myvar, $values);

$numKeys = count($keys);
$numVals = count($values);

$result = array();
foreach ($i = 0; $i < $numKeys; $i++) {
    if ($i < $numVals) {
        $result[trim($keys[$i], "[]")] = trim($values[$i], "()");
    }
}
$keys=array();
preg\u match\u all(“/\[.+\]/”,$myvar,$keys);
$values=array();
preg_match_all(“/\(.+\)/”,$myvar,$value);
$numKeys=计数($keys);
$numVals=计数($value);
$result=array();
foreach($i=0;$i<$numKeys;$i++){
如果($i<$numVals){
$result[trim($key[$i],“[]”)=trim($value[$i],“()”);
}
}

?手动操作,因为这似乎不是一个公认的问题format@Matt你已经厌倦了写你尝试过的东西了吗?:)@是的,很累,但我的手指很灵活。
if(preg_match_all('/\[(.*?)\]\((.*?)\)/',$myvar,$matches)) {
    foreach($matches[0] as $k=>$v) {
        $arr_name[$k] = $matches[1][$k];
        $arr_val[$k] = $matches[2][$k];
    }
}