1

だからここに私が立ち往生している状況があります。文字列としてインポートするJavaScriptファイル( http://roosters-hd.stenden.com/js/data_autogen.js )からPHPに多次元配列をインポートしようとしています。次のようになります。

locgrouparray[i++] = new locgroup("E0.090 (33)", "E0.090 (33)", "#SPLUS6ECDBE", "MET");
locgrouparray[i++] = new locgroup("E0.092 (28)", "E0.092 (28)", "#SPLUS6ECDBF", "(none)");
locgrouparray[i++] = new locgroup("E0.111 (30)", "E0.111 (30)", "#SPLUS6ECDC0", "(none)");
locgrouparray[i++] = new locgroup("E0.113 (30)", "E0.113 (30)", "#SPLUS6ECDC1", "(none)");
etc.

PHP配列に:

Array (
    [0] => Array (
        [Class] => "E0.090 (33)"
        [ClassID] => "#SPLUS6ECDBE""
        [type] => "MET"
    ),    
    [1] => Array (
        [Class] => "E0.090 (28)"
        [ClassID] => "#SPLUS6ECDBF""
        [type] => "(none)"
    ),  
    [2] => Array (
        [Class] => "E0.111 (30)"
        [ClassID] => "#SPLUS6ECDC0""
        [type] => "(none)"
    ), 
    etc.  
)

この多次元配列をインポートする最も効率的な方法は何ですか?

4

2 に答える 2

1
$data = <<<DATA
locgrouparray[i++] = new locgroup("E0.090 (33)", "E0.090 (33)", "#SPLUS6ECDBE", "MET");
locgrouparray[i++] = new locgroup("E0.092 (28)", "E0.092 (28)", "#SPLUS6ECDBF", "(none)");
locgrouparray[i++] = new locgroup("E0.111 (30)", "E0.111 (30)", "#SPLUS6ECDC0", "(none)");
locgrouparray[i++] = new locgroup("E0.113 (30)", "E0.113 (30)", "#SPLUS6ECDC1", "(none)");
DATA;

preg_match_all('/locgroup\("([^"]+)",\s*"[^"]+",\s*"([^"]+)",\s*"([^"]+)"\)/i', $data, $matches, PREG_SET_ORDER);
$parsedData = array_map(function (array $m) { return array('Class' => $m[1], 'ClassId' => $m[2], 'type' => $m[3]); }, $matches);

var_dump($parsedData);
于 2013-06-28T08:51:16.147 に答える