0

I have an XML feed that is automatically generated on one site and I'm trying to copy it over to another and import the data into a mysql db, but, I'm having difficulty as I'm not familiar with arrays broken down into multiple elements.

Does it get processed the same way a standard array would or does each have to be processed separately? Outputted XML example is included below;

[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
    )

)

1
  • 1
    I'm not sure what your problem is. Do you don't know how to handle arrays nested in other arrays? Or, don't you know how to create an array from an XML? Commented Feb 18, 2013 at 11:05

1 Answer 1

1

To access the information in multidimensional array like the one you have above you would use the following notation. Let's say your main array is called $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]."'
)";

This is the equivalent of:

$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'
)";
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.