php节点进入多维数组

时间:2013-08-31 19:40:25

标签: php multidimensional-array

这是我到目前为止的一个剧本。

<?php 

 $xml= simplexml_load_file("http://meteo.arso.gov.si/uploads/probase/www/observ/surface/text/sl/observationAms_si_latest.xml");
  // print_r($xml);


$meteos = $xml->metData; 

$spot = array();
foreach ($meteos as $meteo) {
$spot[] = "$meteo->domain_title, $meteo->tsValid_issued, $meteo->t, $meteo->dd_icon, $meteo->ff_val, $meteo->ffmax_val, $meteo->msl, $meteo->rr_val, $meteo->rr_val";

}


print_r($spot);


    ?>

我得到的是:

Array
(
    [0] => BILJE NOVA GORICA, 31.08.2013 21:00 CEST, 19.2, E, 1.5, 1.8, 1019, 0, 0
    [1] => BOHINJSKA CESNJICA, 31.08.2013 21:00 CEST, 14.4, , , , , , 
    [2] => BORST GORENJA VAS, 31.08.2013 21:00 CEST, 15.3, SW, 0.4, 1.3, 1020, 0, 0

我想得到的是

Array
(
    [0] => BILJE NOVA GORICA
          [0] => 31.08.2013 21:00 CEST
          [1] =>19.2 
          [2] =>E
          [3] =>1.5
          [4] =>1.8 
          [5] =>1019

我该怎么做?另外我想找到一个包含“ILIRSKA BISTRICA”的数组,这样我就可以将它写入数据库了。

THX。

2 个答案:

答案 0 :(得分:1)

你不能真的这样做,但是你有两种选择:

Array
(
    [BILJE NOVA GORICA]  => Array
    (
        [0] => 31.08.2013 21:00 CEST
        [1] =>19.2 
        ....
    )
)

或者

Array
(
    [0] => Array
    (
        [name] => BILJE NOVA GORICA
        [values] => Array
        (
            [0] => 31.08.2013 21:00 CEST
            [1] =>19.2 
            ...
        )
    )
)

我会推荐第一种方法,因为它更小,更容易使用。您只需执行以下操作即可将数组设置为:

$spot[$meteo->domain_title] = array(
    $meteo->tsValid_issued,
    $meteo->t,
    $meteo->dd_icon,
    $meteo->ff_val,
    $meteo->ffmax_val,
    $meteo->msl,
    $meteo->rr_val,
    $meteo->rr_val
);

答案 1 :(得分:0)

$meteo属性保存为数组项。

foreach ($meteos as $meteo) {
    $spot[$meteo->domain_title] = array(
        $meteo->tsValid_issued, 
        $meteo->t, 
        $meteo->dd_icon,     
        $meteo->ff_val, 
        $meteo->ffmax_val, 
        $meteo->msl, 
        $meteo->rr_val, 
        $meteo->rr_val
    );
}