0

あるサイトで自動的に生成される XML フィードがあり、それを別のサイトにコピーしてデータを mysql db にインポートしようとしていますが、分割された配列に慣れていないため問題があります。複数の要素。

標準配列と同じ方法で処理されますか、それともそれぞれを個別に処理する必要がありますか? 出力された XML の例を以下に示します。

[str] => Array
    (
        [0] => 0
        [1] => USD
        [2] => USPS
        [3] => 4228547
        [4] => 486948677
        [5] => 7
        [6] => IndyGen3
        [7] => 1
        [8] => 8 units|8
        [9] => N/A
        [10] => 1
        [11] => Unlimited Refill
        [12] => Unlimited Refill
        [13] => www
        [14] => 1297081
        [15] => unitACTIVE4228547
        [16] => 2
        [17] => 0
        [18] => unit-486948677
        [19] => unit
        [20] => ACTIVE
        [21] => unit
        [22] => 1
        [23] => 1
        [24] => 47d 23h 24m
        [25] => 2013-02-15T19:35:15.153Z
    )

[float] => Array
    (
        [0] => 94.88
        [1] => 94.88
    )

[date] => Array
    (
        [0] => 2013-02-15T19:35:15.438Z
        [1] => 2013-02-15T19:33:14Z
        [2] => 2013-02-15T19:35:02Z
        [3] => 2013-04-04T19:00:00Z
    )

[arr] => Array
    (
        [0] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [name] => fm_ship_rules
                    )

                [str] => Array
                    (
                        [0] => 6,3,25.0,,2013-04-02T19:00:00Z
                        [1] => 6,7,11.95,,2013-03-22T19:00:00Z
                        [2] => 6,15,19.95,,2013-04-02T19:00:00Z
                        [3] => 6,16,19.95,,2013-04-02T19:00:00Z
                    )

            )

        [1] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [name] => fm_dm_rules_desc
                    )

                [str] => Array
                    (
                        [0] => USPS,USPS Priority, 25.0,,2013-04-02T19:00:00Z
                        [1] => USPS,USPS Two Day,11.95,,2013-03-22T19:00:00Z
                        [2] => USPS,USPS International Priority Puerto Rico,19.95,,2013-04-02T19:00:00Z
                        [3] => USPS,USPS International Priority Canada,19.95,,2013-04-02T19:00:00Z
                    )

            )

    )

[int] => Array
    (
        [0] => 8
        [1] => 8
        [2] => 1
    )

)

4

1 に答える 1

1

上記のような多次元配列の情報にアクセスするには、次の表記法を使用します。メイン配列が と呼ばれるとしましょう$arr

$sql = "INSERT INTO `mytable`
(
    `currency`,
    `postal_service`,
    `date`,
    `amount_1`,
    `amount_2`
) VALUES (
    '".$arr[str][1]."',
    '".$arr[str][2]."',
    '".$arr[date][0]."',
    '".$arr[float][0]."',
    '".$arr[float][1]."'
)";

これは次と同等です。

$sql = "INSERT INTO `mytable`
(
    `currency`,
    `postal_service`,
    `date`,
    `amount_1`,
    `amount_2`
) VALUES (
    'USD',
    'USPS',
    '2013-02-15T19:35:15.438Z',
    '94.88',
    '94.88'
)";
于 2013-02-18T14:46:55.673 に答える