PHP使用解析器创建多维数组

时间:2011-11-17 10:31:50

标签: php arrays parsing multidimensional-array

我有一个用@file_get_contents($url)提取的解析后的html数据,就像

<script type="text/javascript">var stock = 
new Array();
stock['704'] = new Array('92 (1-2)', 913, 'n.A.', '104 (3-4)', 2371, 'n.A.', '116 (5-6)', 1921, 'n.A.', '128 (7-8)', 4626, 'n.A.', '140 (9-10)', 4222, 'n.A.', '152 (11-12)', 4281, 'n.A.');
stock['101'] = new Array('92 (1-2)', 3444, 'n.A.', '104 (3-4)', 10136, 'n.A.', '116 (5-6)', 18834, 'n.A.', '128 (7-8)', 30662, 'n.A.', '140 (9-10)', 28981, 'n.A.', '152 (11-12)', 25982, 'n.A.');
stock['540'] = new Array('92 (1-2)', 505, 'n.A.', '104 (3-4)', 1220, 'n.A.', '116 (5-6)', 1634, 'n.A.', '128 (7-8)', 1381, 'n.A.', '140 (9-10)', 3187, 'n.A.', '152 (11-12)', 5014, 'n.A.');
stock['700'] = new Array('92 (1-2)', 401, 'n.A.', '104 (3-4)', 724, 'n.A.', '116 (5-6)', 1078, 'n.A.', '128 (7-8)', 1247, 'n.A.', '140 (9-10)', 2767, 'n.A.', '152 (11-12)', 2207, 'n.A.');
stock['448'] = new Array('92 (1-2)', 517, 'n.A.', '104 (3-4)', 727, 'n.A.', '116 (5-6)', 1721, 'n.A.', '128 (7-8)', 1537, 'n.A.', '140 (9-10)', 2382, 'n.A.', '152 (11-12)', 1820, 'n.A.');
stock['423'] = new Array('92 (1-2)', 876, 'n.A.', '104 (3-4)', 1110, 'n.A.', '116 (5-6)', 5196, 'n.A.', '128 (7-8)', 3159, 'n.A.', '140 (9-10)', 7727, 'n.A.', '152 (11-12)', 3656, 'n.A.');
stock['121'] = new Array('92 (1-2)', 781, 'n.A.', '104 (3-4)', 13363, 'n.A.', '116 (5-6)', 13300, 'n.A.', '128 (7-8)', 1964, 'n.A.', '140 (9-10)', 3591, 'n.A.', '152 (11-12)', 2552, 'n.A.');
stock['719'] = new Array('92 (1-2)', 188, 'n.A.', '104 (3-4)', 1313, 'n.A.', '116 (5-6)', 2109, 'n.A.', '128 (7-8)', 2076, 'n.A.', '140 (9-10)', 2292, 'n.A.', '152 (11-12)', 2674, 'n.A.');    var imageTmp = new Array();
</script><body>

我需要的最终输出是MultiDimensional Array,需要像这样。像92(1-2)这样的值也可以是字母表。

Array
(
    [704] => Array
        (
            [92 (1-2)] => Array
        (
            [qty] => 913
            [price] => n.A

        )
            [104 (3-4)] => Array
        (
            [qty] => 2371
            [price] => n.A

        )
            [116 (5-6)] => Array
        (
            [qty] => 1921
            [price] => n.A

        )       
        )

    [101] => Array
        (
            [92 (1-2)] => Array
        (
            [qty] => 3444
            [price] => n.A

        )
            [104 (3-4)] => Array
        (
            [qty] => 10136
            [price] => n.A

        )
            [116 (5-6)] => Array
        (
            [qty] => 18834
            [price] => n.A

        )       
        )

    [700] => Array
        (
            [XS] => Array
        (
            [qty] => 3444
            [price] => n.A

        )
            [L] => Array
        (
            [qty] => 10136
            [price] => n.A

        )
            [S] => Array
        (
            [qty] => 18834
            [price] => n.A

        )       
        )

)

我怎么能得到这个

1 个答案:

答案 0 :(得分:1)

您可能在页面上打印一个数组,然后使用file_get_contents获取该页面的内容。您的问题是内容不是数组?

快速解决此问题的方法是将数组输出为serialized字符串。然后,您只需执行unserialize即可再次使用可用数组。