Extract info from array

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
phpa
Forum Newbie
Posts: 3
Joined: Tue Jun 16, 2009 5:49 am

Extract info from array

Post by phpa »

Hi

I'm new to PHP and trying to get a soap service to work. This is a result returned by nusoap, using PHP how do I extract the deliverydates into a separate array?

Code: Select all

Array ( [GetDatesForPostcodeResult] => Array ( [schema] => Array ( [element] => Array ( [complexType] => Array ( [choice] => Array ( [element] => Array ( [complexType] => Array ( [sequence] => Array ( [element] => Array ( [0] => Array ( [!name] => DeliveryDate [!minOccurs] => 0 ) [1] => Array ( [!name] => Depot [!minOccurs] => 0 ) [2] => Array ( [!name] => Column1 [!minOccurs] => 0 ) [3] => Array ( [!name] => RoundNumber [!minOccurs] => 0 ) [4] => Array ( [!name] => ChargeSat [!minOccurs] => 0 ) [5] => Array ( [!name] => DayNumber [!minOccurs] => 0 ) ) ) ) [!name] => RoundInfo ) [!maxOccurs] => unbounded ) ) [!name] => NewDataSet [!msdata:IsDataSet] => true [!msdata:Locale] => en-GB ) [!id] => NewDataSet ) [diffgram] => Array ( [NewDataSet] => Array ( [RoundInfo] => Array ( [0] => Array ( [DeliveryDate] => 20090619 [Depot] => 38 [Column1] => 3 [RoundNumber] => 650 [ChargeSat] => N [DayNumber] => 6 [!diffgr:id] => RoundInfo1 [!msdata:rowOrder] => 0 ) [1] => Array ( [DeliveryDate] => 20090622 [Depot] => 38 [Column1] => 3 [RoundNumber] => 610 [ChargeSat] => N [DayNumber] => 2 [!diffgr:id] => RoundInfo2 [!msdata:rowOrder] => 1 ) [2] => Array ( [DeliveryDate] => 20090624 [Depot] => 38 [Column1] => 3 [RoundNumber] => 630 [ChargeSat] => N [DayNumber] => 4 [!diffgr:id] => RoundInfo3 [!msdata:rowOrder] => 2 ) [3] => Array ( [DeliveryDate] => 20090629 [Depot] => 38 [Column1] => 3 [RoundNumber] => 610 [ChargeSat] => N [DayNumber] => 2 [!diffgr:id] => RoundInfo4 [!msdata:rowOrder] => 3 ) [4] => Array ( [DeliveryDate] => 20090630 [Depot] => 38 [Column1] => 3 [RoundNumber] => 620 [ChargeSat] => N [DayNumber] => 3 [!diffgr:id] => RoundInfo5 [!msdata:rowOrder] => 4 ) [5] => Array ( [DeliveryDate] => 20090701 [Depot] => 38 [Column1] => 3 [RoundNumber] => 630 [ChargeSat] => N [DayNumber] => 4 [!diffgr:id] => RoundInfo6 [!msdata:rowOrder] => 5 ) [6] => Array ( [DeliveryDate] => 20090703 [Depot] => 38 [Column1] => 3 [RoundNumber] => 650 [ChargeSat] => N [DayNumber] => 6 [!diffgr:id] => RoundInfo7 [!msdata:rowOrder] => 6 ) [7] => Array ( [DeliveryDate] => 20090706 [Depot] => 38 [Column1] => 3 [RoundNumber] => 610 [ChargeSat] => N [DayNumber] => 2 [!diffgr:id] => RoundInfo8 [!msdata:rowOrder] => 7 ) [8] => Array ( [DeliveryDate] => 20090707 [Depot] => 38 [Column1] => 3 [RoundNumber] => 620 [ChargeSat] => N [DayNumber] => 3 [!diffgr:id] => RoundInfo9 [!msdata:rowOrder] => 8 ) [9] => Array ( [DeliveryDate] => 20090708 [Depot] => 38 [Column1] => 3 [RoundNumber] => 630 [ChargeSat] => N [DayNumber] => 4 [!diffgr:id] => RoundInfo10 [!msdata:rowOrder] => 9 ) [10] => Array ( [DeliveryDate] => 20090709 [Depot] => 38 [Column1] => 3 [RoundNumber] => 640 [ChargeSat] => N [DayNumber] => 5 [!diffgr:id] => RoundInfo11 [!msdata:rowOrder] => 10 ) [11] => Array ( [DeliveryDate] => 20090710 [Depot] => 38 [Column1] => 3 [RoundNumber] => 650 [ChargeSat] => N [DayNumber] => 6 [!diffgr:id] => RoundInfo12 [!msdata:rowOrder] => 11 ) [12] => Array ( [DeliveryDate] => 20090713 [Depot] => 38 [Column1] => 3 [RoundNumber] => 610 [ChargeSat] => N [DayNumber] => 2 [!diffgr:id] => RoundInfo13 [!msdata:rowOrder] => 12 ) [13] => Array ( [DeliveryDate] => 20090714 [Depot] => 38 [Column1] => 3 [RoundNumber] => 620 [ChargeSat] => N [DayNumber] => 3 [!diffgr:id] => RoundInfo14 [!msdata:rowOrder] => 13 ) [14] => Array ( [DeliveryDate] => 20090715 [Depot] => 38 [Column1] => 3 [RoundNumber] => 630 [ChargeSat] => N [DayNumber] => 4 [!diffgr:id] => RoundInfo15 [!msdata:rowOrder] => 14 ) ) ) ) ) )
User avatar
pickle
Briney Mod
Posts: 6445
Joined: Mon Jan 19, 2004 6:11 pm
Location: 53.01N x 112.48W
Contact:

Re: Extract info from array

Post by pickle »

It's darn near impossible to help when the array looks like that.

Rather than just calling print_r(), do this:

Code: Select all

echo '<pre>';
print_r($whatever_variable_your_outputing);
echo '</pre>';
That will format it much nicer.
Real programmers don't comment their code. If it was hard to write, it should be hard to understand.
phpa
Forum Newbie
Posts: 3
Joined: Tue Jun 16, 2009 5:49 am

Re: Extract info from array

Post by phpa »

Hi, thanks for you help, hope this is a little clearer.

Code: Select all

Array
(
    [GetDatesForPostcodeResult] => Array
        (
            [schema] => Array
                (
                    [element] => Array
                        (
                            [complexType] => Array
                                (
                                    [choice] => Array
                                        (
                                            [element] => Array
                                                (
                                                    [complexType] => Array
                                                        (
                                                            [sequence] => Array
                                                                (
                                                                    [element] => Array
                                                                        (
                                                                            [0] => Array
                                                                                (
                                                                                    [!name] => DeliveryDate
                                                                                    [!minOccurs] => 0
                                                                                )
 
                                                                            [1] => Array
                                                                                (
                                                                                    [!name] => Depot
                                                                                    [!minOccurs] => 0
                                                                                )
 
                                                                            [2] => Array
                                                                                (
                                                                                    [!name] => Column1
                                                                                    [!minOccurs] => 0
                                                                                )
 
                                                                            [3] => Array
                                                                                (
                                                                                    [!name] => RoundNumber
                                                                                    [!minOccurs] => 0
                                                                                )
 
                                                                            [4] => Array
                                                                                (
                                                                                    [!name] => ChargeSat
                                                                                    [!minOccurs] => 0
                                                                                )
 
                                                                            [5] => Array
                                                                                (
                                                                                    [!name] => DayNumber
                                                                                    [!minOccurs] => 0
                                                                                )
 
                                                                        )
 
                                                                )
 
                                                        )
 
                                                    [!name] => RoundInfo
                                                )
 
                                            [!maxOccurs] => unbounded
                                        )
 
                                )
 
                            [!name] => NewDataSet
                            [!msdata:IsDataSet] => true
                            [!msdata:Locale] => en-GB
                        )
 
                    [!id] => NewDataSet
                )
 
            [diffgram] => Array
                (
                    [NewDataSet] => Array
                        (
                            [RoundInfo] => Array
                                (
                                    [0] => Array
                                        (
                                            [DeliveryDate] => 20090619
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 650
                                            [ChargeSat] => N
                                            [DayNumber] => 6
                                            [!diffgr:id] => RoundInfo1
                                            [!msdata:rowOrder] => 0
                                        )
 
                                    [1] => Array
                                        (
                                            [DeliveryDate] => 20090622
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 610
                                            [ChargeSat] => N
                                            [DayNumber] => 2
                                            [!diffgr:id] => RoundInfo2
                                            [!msdata:rowOrder] => 1
                                        )
 
                                    [2] => Array
                                        (
                                            [DeliveryDate] => 20090624
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 630
                                            [ChargeSat] => N
                                            [DayNumber] => 4
                                            [!diffgr:id] => RoundInfo3
                                            [!msdata:rowOrder] => 2
                                        )
 
                                    [3] => Array
                                        (
                                            [DeliveryDate] => 20090629
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 610
                                            [ChargeSat] => N
                                            [DayNumber] => 2
                                            [!diffgr:id] => RoundInfo4
                                            [!msdata:rowOrder] => 3
                                        )
 
                                    [4] => Array
                                        (
                                            [DeliveryDate] => 20090630
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 620
                                            [ChargeSat] => N
                                            [DayNumber] => 3
                                            [!diffgr:id] => RoundInfo5
                                            [!msdata:rowOrder] => 4
                                        )
 
                                    [5] => Array
                                        (
                                            [DeliveryDate] => 20090701
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 630
                                            [ChargeSat] => N
                                            [DayNumber] => 4
                                            [!diffgr:id] => RoundInfo6
                                            [!msdata:rowOrder] => 5
                                        )
 
                                    [6] => Array
                                        (
                                            [DeliveryDate] => 20090703
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 650
                                            [ChargeSat] => N
                                            [DayNumber] => 6
                                            [!diffgr:id] => RoundInfo7
                                            [!msdata:rowOrder] => 6
                                        )
 
                                    [7] => Array
                                        (
                                            [DeliveryDate] => 20090706
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 610
                                            [ChargeSat] => N
                                            [DayNumber] => 2
                                            [!diffgr:id] => RoundInfo8
                                            [!msdata:rowOrder] => 7
                                        )
 
                                    [8] => Array
                                        (
                                            [DeliveryDate] => 20090707
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 620
                                            [ChargeSat] => N
                                            [DayNumber] => 3
                                            [!diffgr:id] => RoundInfo9
                                            [!msdata:rowOrder] => 8
                                        )
 
                                    [9] => Array
                                        (
                                            [DeliveryDate] => 20090708
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 630
                                            [ChargeSat] => N
                                            [DayNumber] => 4
                                            [!diffgr:id] => RoundInfo10
                                            [!msdata:rowOrder] => 9
                                        )
 
                                    [10] => Array
                                        (
                                            [DeliveryDate] => 20090709
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 640
                                            [ChargeSat] => N
                                            [DayNumber] => 5
                                            [!diffgr:id] => RoundInfo11
                                            [!msdata:rowOrder] => 10
                                        )
 
                                    [11] => Array
                                        (
                                            [DeliveryDate] => 20090710
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 650
                                            [ChargeSat] => N
                                            [DayNumber] => 6
                                            [!diffgr:id] => RoundInfo12
                                            [!msdata:rowOrder] => 11
                                        )
 
                                    [12] => Array
                                        (
                                            [DeliveryDate] => 20090713
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 610
                                            [ChargeSat] => N
                                            [DayNumber] => 2
                                            [!diffgr:id] => RoundInfo13
                                            [!msdata:rowOrder] => 12
                                        )
 
                                    [13] => Array
                                        (
                                            [DeliveryDate] => 20090714
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 620
                                            [ChargeSat] => N
                                            [DayNumber] => 3
                                            [!diffgr:id] => RoundInfo14
                                            [!msdata:rowOrder] => 13
                                        )
 
                                    [14] => Array
                                        (
                                            [DeliveryDate] => 20090715
                                            [Depot] => 38
                                            [Column1] => 3
                                            [RoundNumber] => 630
                                            [ChargeSat] => N
                                            [DayNumber] => 4
                                            [!diffgr:id] => RoundInfo15
                                            [!msdata:rowOrder] => 14
                                        )
 
                                )
 
                        )
 
                )
 
        )
 
)
 
 
fannnn
Forum Newbie
Posts: 6
Joined: Tue Jun 16, 2009 10:55 am

Re: Extract info from array

Post by fannnn »

you just use basic array accessing operators: array['subarray']['subarray2'][0], etc...
User avatar
McInfo
DevNet Resident
Posts: 1532
Joined: Wed Apr 01, 2009 1:31 pm

Re: Extract info from array

Post by McInfo »

It's a little less simple than that.

Code: Select all

foreach ($array['GetDatesForPostcodeResult']['diffgram']['NewDataSet']['RoundInfo'] as $info) {
    $deliveryDates[] = $info['DeliveryDate'];
}
print_r($deliveryDates);
Edit: This post was recovered from search engine cache.
Last edited by McInfo on Tue Jun 15, 2010 11:15 pm, edited 1 time in total.
phpa
Forum Newbie
Posts: 3
Joined: Tue Jun 16, 2009 5:49 am

Re: Extract info from array

Post by phpa »

Brilliant, thanks

If the forum takes paypal donations let me know.
User avatar
McInfo
DevNet Resident
Posts: 1532
Joined: Wed Apr 01, 2009 1:31 pm

Re: Extract info from array

Post by McInfo »

phpa wrote:If the forum takes paypal donations let me know.
I would accept a PayPal donation. Send me a PM if you're serious.

Edit: This post was recovered from search engine cache.
Post Reply