-2
如何转换这种字符串转换为变量
$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';
我应该用什么样的功能呢?
如何转换这种字符串转换为变量
$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';
我应该用什么样的功能呢?
if(preg_match_all('/\[(.*?)\]\((.*?)\)/',$myvar,$matches)) {
foreach($matches[0] as $k=>$v) {
$arr_name[$k] = $matches[1][$k];
$arr_val[$k] = $matches[2][$k];
}
}
你可以尝试使用正则表达式来提取你的钥匙&变量,然后将其插入到一个数组:
$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], "()");
}
}
[你尝试过什么(http://www.whathaveyoutried.com) ? – Matt
手动,因为这似乎不是一个公认的格式 –
你是如何得到$ myvar的? –