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
phpa
Forum Newbie
Posts: 3 Joined: Tue Jun 16, 2009 5:49 am
Post
by phpa » Tue Jun 16, 2009 5:54 am
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 ) ) ) ) ) )
pickle
Briney Mod
Posts: 6445 Joined: Mon Jan 19, 2004 6:11 pm
Location: 53.01N x 112.48W
Contact:
Post
by pickle » Tue Jun 16, 2009 9:51 am
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
Post
by phpa » Tue Jun 16, 2009 11:36 am
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
Post
by fannnn » Tue Jun 16, 2009 11:43 am
you just use basic array accessing operators: array['subarray']['subarray2'][0], etc...
McInfo
DevNet Resident
Posts: 1532 Joined: Wed Apr 01, 2009 1:31 pm
Post
by McInfo » Tue Jun 16, 2009 6:48 pm
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
Post
by phpa » Wed Jun 17, 2009 3:50 am
Brilliant, thanks
If the forum takes paypal donations let me know.
McInfo
DevNet Resident
Posts: 1532 Joined: Wed Apr 01, 2009 1:31 pm
Post
by McInfo » Wed Jun 17, 2009 10:13 am
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.