-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';

どの関数を使用すればよいですか?

4

2 に答える 2

3
if(preg_match_all('/\[(.*?)\]\((.*?)\)/',$myvar,$matches)) {
    foreach($matches[0] as $k=>$v) {
        $arr_name[$k] = $matches[1][$k];
        $arr_val[$k] = $matches[2][$k];
    }
}
于 2012-08-27T13:41:34.293 に答える
0

正規表現を使用してキーと変数を抽出し、それらを配列に挿入してみてください。

$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], "()");
    }
}
于 2012-08-27T13:37:11.697 に答える